Skip to content
This repository was archived by the owner on Nov 3, 2025. It is now read-only.

Commit 5ee1e47

Browse files
committed
♻️ (Home) move downloaded filter in HomeModule
1 parent 9cd6424 commit 5ee1e47

2 files changed

Lines changed: 57 additions & 47 deletions

File tree

example/src/canals/home/Home.tsx

Lines changed: 41 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -7,52 +7,46 @@ import {TabBar} from '../../atoms/TabBar';
77
import {HomeScreen} from './screens/HomeScreen';
88
import {DownloadScreen} from './screens/DownloadScreen';
99
import {SearchModule} from '../../module/SearchModule';
10+
import {HomeModule} from '../../module/HomeModule';
11+
import {observer} from 'mobx-react';
1012

11-
export const Home = () => {
12-
const [navigationScreen, setNavigationState] = useState('Home');
13-
14-
return (
15-
<View style={StyleSheet.absoluteFill}>
16-
<Canal style={{flex: 1}}>
17-
<Screen
18-
name="Home"
19-
Component={HomeScreen}
20-
visible={navigationScreen === 'Home'}
21-
Transitioner={transition.Fade}
22-
/>
23-
<Screen
24-
name="Downloads"
25-
Component={DownloadScreen}
26-
visible={navigationScreen === 'Downloads'}
27-
Transitioner={transition.Fade}
28-
/>
29-
</Canal>
30-
<TabBar
31-
items={[
32-
{
33-
iconName: 'home',
34-
title: 'Accueil',
35-
selected: navigationScreen === 'Home',
36-
onPress: () => {
37-
setNavigationState('Home');
38-
},
39-
},
40-
{
41-
iconName: 'magnifier',
42-
title: 'Rechercher',
43-
selected: false,
44-
onPress: SearchModule.search,
45-
},
46-
{
47-
iconName: 'arrow-down-circle',
48-
title: 'Téléchargements',
49-
selected: navigationScreen === 'Downloads',
50-
onPress: () => {
51-
setNavigationState('Downloads');
52-
},
53-
},
54-
]}
13+
export const Home = observer(() => (
14+
<View style={StyleSheet.absoluteFill}>
15+
<Canal style={{flex: 1}}>
16+
<Screen
17+
name="Home"
18+
Component={HomeScreen}
19+
visible={!HomeModule.isFilteringDownloaded}
20+
Transitioner={transition.Fade}
21+
/>
22+
<Screen
23+
name="Downloads"
24+
Component={DownloadScreen}
25+
visible={HomeModule.isFilteringDownloaded}
26+
Transitioner={transition.Fade}
5527
/>
56-
</View>
57-
);
58-
};
28+
</Canal>
29+
<TabBar
30+
items={[
31+
{
32+
iconName: 'home',
33+
title: 'Accueil',
34+
selected: !HomeModule.isFilteringDownloaded,
35+
onPress: HomeModule.cancelFilter,
36+
},
37+
{
38+
iconName: 'magnifier',
39+
title: 'Rechercher',
40+
selected: false,
41+
onPress: SearchModule.search,
42+
},
43+
{
44+
iconName: 'arrow-down-circle',
45+
title: 'Téléchargements',
46+
selected: HomeModule.isFilteringDownloaded,
47+
onPress: HomeModule.filterDownloaded,
48+
},
49+
]}
50+
/>
51+
</View>
52+
));

example/src/module/HomeModule.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import {observable} from 'mobx';
2+
3+
class HomeModule_ {
4+
@observable
5+
isFilteringDownloaded = false;
6+
7+
filterDownloaded = () => {
8+
this.isFilteringDownloaded = true;
9+
};
10+
11+
cancelFilter = () => {
12+
this.isFilteringDownloaded = false;
13+
};
14+
}
15+
16+
export const HomeModule = new HomeModule_();

0 commit comments

Comments
 (0)