1- import React , { useContext , useState } from 'react'
1+ import React , { useState } from 'react'
22import ReactModal from 'react-modal'
33import 'react-toggle/style.css'
44import { VscClose } from 'react-icons/vsc'
55import Select , { ActionMeta , MultiValue , SingleValue } from 'react-select'
66import { SearchEngineType } from 'src/types'
77import Toggle from 'react-toggle'
88import './settings.css'
9- import PreferencesContext from 'src/preferences/PreferencesContext '
9+ import { useUserPreferences } from 'src/stores/preferences '
1010import { SUPPORTED_CARDS , SUPPORTED_SEARCH_ENGINES , APP } from 'src/Constants'
1111import {
1212 trackLanguageAdd ,
@@ -34,9 +34,20 @@ export const SettingsModal = ({ showSettings, setShowSettings }: SettingsModalPr
3434 remoteConfig : { supportedTags } ,
3535 } = useRemoteConfigStore ( )
3636
37- const preferences = useContext ( PreferencesContext )
38- const { dispatcher, cards, userSelectedTags, openLinksNewTab, listingMode, theme, searchEngine } =
39- preferences
37+ const {
38+ cards,
39+ userSelectedTags,
40+ openLinksNewTab,
41+ listingMode,
42+ theme,
43+ searchEngine,
44+ setTheme,
45+ setListingMode,
46+ setSearchEngine,
47+ setOpenLinksNewTab,
48+ setCards,
49+ setTags,
50+ } = useUserPreferences ( )
4051 const [ selectedCards , setSelectedCards ] = useState ( cards )
4152
4253 const handleCloseModal = ( ) => {
@@ -58,13 +69,21 @@ export const SettingsModal = ({ showSettings, setShowSettings }: SettingsModalPr
5869 break
5970 }
6071
61- dispatcher ( { type : 'setUserSelectedTags' , value : tags } )
72+ console . log ( tags )
73+ setTags (
74+ tags . map ( ( tag ) => {
75+ return {
76+ label : tag . label ,
77+ value : tag . value ,
78+ }
79+ } )
80+ )
6281 }
6382
6483 const onlistingModeChange = ( e : React . ChangeEvent < HTMLInputElement > ) => {
6584 const value = e . target . checked ? 'compact' : 'normal'
6685 trackListingModeSelect ( value )
67- dispatcher ( { type : 'changelistingMode' , value } )
86+ setListingMode ( value )
6887 }
6988
7089 const onCardSelectChange = ( cards : MultiValue < OptionType > , metas : ActionMeta < OptionType > ) => {
@@ -85,7 +104,7 @@ export const SettingsModal = ({ showSettings, setShowSettings }: SettingsModalPr
85104 return { id : index , name : c . value }
86105 } )
87106 setSelectedCards ( newCards )
88- dispatcher ( { type : ' setCards' , value : newCards } )
107+ setCards ( newCards )
89108 }
90109
91110 const onSearchEngineSelectChange = ( value : SingleValue < SearchEngineType > ) => {
@@ -94,17 +113,21 @@ export const SettingsModal = ({ showSettings, setShowSettings }: SettingsModalPr
94113 }
95114
96115 trackSearchEngineSelect ( value . label )
97- dispatcher ( { type : ' setSearchEngine' , value } )
116+ setSearchEngine ( value . label )
98117 }
99118
100119 const onOpenLinksNewTabChange = ( e : React . ChangeEvent < HTMLInputElement > ) => {
101120 const checked = e . target . checked
102121 trackTabTarget ( checked )
103- dispatcher ( { type : ' setOpenLinksNewTab' , value : checked } )
122+ setOpenLinksNewTab ( checked )
104123 }
105124
106125 const onDarkModeChange = ( ) => {
107- dispatcher ( { type : 'toggleTheme' } )
126+ if ( theme === 'dark' ) {
127+ setTheme ( 'light' )
128+ } else {
129+ setTheme ( 'dark' )
130+ }
108131 }
109132
110133 return (
0 commit comments