Explore category to store

This commit is contained in:
Maarten 2024-08-08 14:18:32 +02:00
parent b619fe34f8
commit d8d8ac35f8
3 changed files with 16 additions and 15 deletions

View file

@ -8,7 +8,7 @@ import {
import { useEffect, useState } from 'react'; import { useEffect, useState } from 'react';
import RenderHtml from 'react-native-render-html'; import RenderHtml from 'react-native-render-html';
import { useNavigation } from '@react-navigation/native'; import { useNavigation } from '@react-navigation/native';
import AsyncStorage from '@react-native-async-storage/async-storage'; import { useSelector } from 'react-redux';
import { Colors } from '@/constants/Colors'; import { Colors } from '@/constants/Colors';
import { useColorScheme } from '@/hooks/useColorScheme'; import { useColorScheme } from '@/hooks/useColorScheme';
@ -18,14 +18,11 @@ export default function CategoryScreen() {
const colorScheme = useColorScheme() ?? 'light'; const colorScheme = useColorScheme() ?? 'light';
const navigation = useNavigation(); const navigation = useNavigation();
const [ description, setDescription ] = useState( '' ); const [ description, setDescription ] = useState( '' );
const viewCategory = useSelector((state: any) => state.data.viewCategory);
// Load item from storage // Load item from storage
useEffect( () => { useEffect( () => {
AsyncStorage.getItem( 'activeCategory' ).then( (data) => { const { name, description } = viewCategory;
const itemData: any = JSON.parse( data ?? '{}' );
if (itemData != null) {
const { name, description } = itemData;
// Set description // Set description
// @ts-ignore // @ts-ignore
@ -33,8 +30,6 @@ export default function CategoryScreen() {
// Set page title // Set page title
navigation.setOptions( { title: name } ); navigation.setOptions( { title: name } );
}
} );
}, [] ); }, [] );
// HTML render props // HTML render props

View file

@ -13,7 +13,6 @@ import { router } from 'expo-router';
import type { AutocompleteDropdownRef } from 'react-native-autocomplete-dropdown' import type { AutocompleteDropdownRef } from 'react-native-autocomplete-dropdown'
import { AutocompleteDropdown } from 'react-native-autocomplete-dropdown'; import { AutocompleteDropdown } from 'react-native-autocomplete-dropdown';
import Modal from "react-native-modal"; import Modal from "react-native-modal";
import AsyncStorage from '@react-native-async-storage/async-storage';
import { ThemedText } from '@/components/ThemedText'; import { ThemedText } from '@/components/ThemedText';
import { ThemedView } from '@/components/ThemedView'; import { ThemedView } from '@/components/ThemedView';
@ -21,6 +20,8 @@ import { Colors } from '@/constants/Colors';
import { useColorScheme } from '@/hooks/useColorScheme'; import { useColorScheme } from '@/hooks/useColorScheme';
import { Request } from '@/services/request'; import { Request } from '@/services/request';
import List from '@/components/List'; import List from '@/components/List';
import { store } from '@/store/store';
import { setViewCategory } from '@/store/dataStore';
export default function ExploreScreen() { export default function ExploreScreen() {
const colorScheme = useColorScheme() ?? 'light'; const colorScheme = useColorScheme() ?? 'light';
@ -67,7 +68,7 @@ export default function ExploreScreen() {
// View item in sub screen // View item in sub screen
const viewItem = async (item: any) => { const viewItem = async (item: any) => {
await AsyncStorage.setItem( 'activeCategory', JSON.stringify( item ) ); store.dispatch(setViewCategory(item));
router.push( '/(explore)/category' ); router.push( '/(explore)/category' );
}; };

View file

@ -21,6 +21,7 @@ const dataStore = createSlice( {
}, },
}, },
reloadCalendar: true, reloadCalendar: true,
viewCategory: null,
}, },
reducers: { reducers: {
setSession: (state, action) => { setSession: (state, action) => {
@ -29,10 +30,14 @@ const dataStore = createSlice( {
setReloadCalendar: (state, action) => { setReloadCalendar: (state, action) => {
state.reloadCalendar = action.payload; state.reloadCalendar = action.payload;
}, },
setViewCategory: (state, action) => {
state.viewCategory = action.payload;
},
}, },
} ); } );
export const { setSession } = dataStore.actions; export const { setSession } = dataStore.actions;
export const { setReloadCalendar } = dataStore.actions; export const { setReloadCalendar } = dataStore.actions;
export const { setViewCategory } = dataStore.actions;
export default dataStore.reducer; export default dataStore.reducer;