@@ -63,33 +63,44 @@ const TAGS_MENU_ID = "tags-menu";
6363const DATE_RANGE_MENU_ID = "date-range-id"
6464
6565function ReposCard ( { analyticsTag, icon, withAds } ) {
66+
67+ const getInitialSelectedTag = ( ) => {
68+ const githubCardSettings = cardsSettings && cardsSettings . repos ? cardsSettings . repos : null
69+ if ( githubCardSettings && githubCardSettings . language ) {
70+ return getTags ( ) . find ( ( t ) => t . label == githubCardSettings . language )
71+ }
72+
73+ return getTags ( ) . find ( ( t ) => t . githubValues != null )
74+ }
75+
76+ const getInitialDateRange = ( ) => {
77+ const githubCardSettings = cardsSettings && cardsSettings . repos ? cardsSettings . repos : null
78+ console . log ( githubCardSettings )
79+ if ( githubCardSettings && githubCardSettings . dateRange ) {
80+ return githubCardSettings . dateRange
81+ }
82+ return 'daily'
83+ }
84+
6685 const globalTag = { value : 'global' , label : 'All trending' , githubValues : [ 'global' ] }
6786
6887 const preferences = useContext ( PreferencesContext )
6988
70- const { userSelectedTags = [ ] , userBookmarks = [ ] } = preferences
89+ const { userSelectedTags = [ ] , dispatcher , cardsSettings } = preferences
7190
7291 const getTags = ( ) => [ ...userSelectedTags , globalTag ]
7392
7493 const { show : showMenu } = useContextMenu ( )
7594
76- const [ selectedTag , setSelectedTag ] = useState ( getTags ( ) [ 0 ] )
77- const [ since , setSince ] = useState ( 'daily' )
95+ const [ selectedTag , setSelectedTag ] = useState ( getInitialSelectedTag ( ) )
96+ const [ since , setSince ] = useState ( getInitialDateRange ( ) )
7897 const [ refresh , setRefresh ] = useState ( true )
7998 const dateRangeMapper = {
8099 daily : 'the day' ,
81100 weekly : 'the week' ,
82101 monthly : 'the month' ,
83102 }
84103
85- const getInitialSelectedTag = ( ) => {
86- return getTags ( ) . find ( ( t ) => t . githubValues != null )
87- }
88-
89- useEffect ( ( ) => {
90- setSelectedTag ( getInitialSelectedTag ( ) )
91- } , [ ] )
92-
93104 useEffect ( ( ) => {
94105 setSelectedTag ( getInitialSelectedTag ( ) )
95106 setRefresh ( ! refresh )
@@ -98,11 +109,13 @@ function ReposCard({ analyticsTag, icon, withAds }) {
98109 const onSelectedTagChange = ( selTag ) => {
99110 setSelectedTag ( selTag )
100111 trackReposLanguageChange ( selTag . value )
112+ dispatcher ( { type : 'setCardSettings' , value : { card : 'repos' , language : selTag . label } } )
101113 setRefresh ( ! refresh )
102114 }
103115
104116 const onDateRangeChange = ( dateRange ) => {
105117 setSince ( dateRange )
118+ dispatcher ( { type : 'setCardSettings' , value : { card : 'repos' , dateRange } } )
106119 trackReposDateRangeChange ( dateRange )
107120 setRefresh ( ! refresh )
108121 }
@@ -165,7 +178,7 @@ function ReposCard({ analyticsTag, icon, withAds }) {
165178 < Menu id = { TAGS_MENU_ID } animation = { animation . fade } >
166179 { getTags ( ) . map ( ( tag ) => {
167180 return (
168- < Item key = { tag } onClick = { ( ) => onSelectedTagChange ( tag ) } >
181+ < Item key = { tag . value } onClick = { ( ) => onSelectedTagChange ( tag ) } >
169182 { tag . label }
170183 </ Item >
171184 )
0 commit comments