@@ -13,7 +13,7 @@ import { VscColorMode } from "react-icons/vsc";
1313import { Container , PanelButton } from "./ReadingPanel.styles" ;
1414import { changeColorTheme } from "./colors/change-color-theme.util" ;
1515import { decreaseFont } from "./font-size/decrease-font.util" ;
16- import { increseFont } from "./font-size/increase-font.util" ;
16+ import { increaseFont } from "./font-size/increase-font.util" ;
1717import { decreaseLetterSpacing } from "./letter-spacing/decrease-letter-spacing.util" ;
1818import { increaseLetterSpacing } from "./letter-spacing/increase-letter-spacing.util" ;
1919import { decreaseLineHeight } from "./line-height/decrease-line-height.util" ;
@@ -35,6 +35,9 @@ export function ReadingPanel({
3535 const [ settings , setSettings ] = useState < Settings > ( defaultSettings ) ;
3636 const [ isOpen , setIsOpen ] = useState < boolean > ( settings . startOpen ) ;
3737
38+ const { showButtons } = settings ;
39+ console . debug ( `render! renderSettings=${ JSON . stringify ( settings , null , 2 ) } ` ) ;
40+
3841 useEffect ( ( ) => {
3942 if ( targetClass ) {
4043 const htmlCollection : HTMLCollectionOf < Element > =
@@ -48,8 +51,15 @@ export function ReadingPanel({
4851
4952 useEffect ( ( ) => {
5053 if ( userSettings ) {
51- const newSettings = merge ( settings , userSettings ) ;
54+ const newSettings = merge ( { } , defaultSettings , userSettings ) ;
55+ if ( userSettings . showButtons ) {
56+ newSettings . showButtons = userSettings . showButtons ;
57+ }
5258 setSettings ( newSettings ) ;
59+ setIsOpen ( newSettings . startOpen ) ;
60+ } else {
61+ setSettings ( defaultSettings ) ;
62+ setIsOpen ( defaultSettings . startOpen ) ;
5363 }
5464 } , [ userSettings ] ) ;
5565
@@ -66,7 +76,7 @@ export function ReadingPanel({
6676
6777 const handleFontIncrease = ( ) => {
6878 elements ?. forEach ( ( el ) =>
69- increseFont ( el , settings . fontSizeUnits , settings . fontSizeStep )
79+ increaseFont ( el , settings . fontSizeUnits , settings . fontSizeStep )
7080 ) ;
7181 } ;
7282
@@ -152,27 +162,41 @@ export function ReadingPanel({
152162
153163 { isOpen && (
154164 < >
155- < PanelButton onClick = { handleFontIncrease } >
156- < MdTextIncrease > </ MdTextIncrease >
157- </ PanelButton >
158- < PanelButton onClick = { handleFontDecrease } >
159- < MdTextDecrease > </ MdTextDecrease >
160- </ PanelButton >
161- < PanelButton onClick = { handleLineHeightIncrease } >
162- < AiOutlineMenu > </ AiOutlineMenu >
163- </ PanelButton >
164- < PanelButton onClick = { handleLineHeightDecrease } >
165- < IoMenuOutline > </ IoMenuOutline >
166- </ PanelButton >
167- < PanelButton onClick = { handleColorChange } >
168- < VscColorMode > </ VscColorMode >
169- </ PanelButton >
170- < PanelButton >
171- < FaExpandAlt onClick = { handleLetterSpacingIncrease } > </ FaExpandAlt >
172- </ PanelButton >
173- < PanelButton onClick = { handleLetterSpacingDecrease } >
174- < ImShrink2 > </ ImShrink2 >
175- </ PanelButton >
165+ { showButtons . includes ( "increase_font_size" ) && (
166+ < PanelButton onClick = { handleFontIncrease } >
167+ < MdTextIncrease > </ MdTextIncrease >
168+ </ PanelButton >
169+ ) }
170+ { showButtons . includes ( "decrease_font_size" ) && (
171+ < PanelButton onClick = { handleFontDecrease } >
172+ < MdTextDecrease > </ MdTextDecrease >
173+ </ PanelButton >
174+ ) }
175+ { showButtons . includes ( "increase_line_height" ) && (
176+ < PanelButton onClick = { handleLineHeightIncrease } >
177+ < AiOutlineMenu > </ AiOutlineMenu >
178+ </ PanelButton >
179+ ) }
180+ { showButtons . includes ( "decrease_line_height" ) && (
181+ < PanelButton onClick = { handleLineHeightDecrease } >
182+ < IoMenuOutline > </ IoMenuOutline >
183+ </ PanelButton >
184+ ) }
185+ { showButtons . includes ( "change_colors" ) && (
186+ < PanelButton onClick = { handleColorChange } >
187+ < VscColorMode > </ VscColorMode >
188+ </ PanelButton >
189+ ) }
190+ { showButtons . includes ( "increase_letter_spacing" ) && (
191+ < PanelButton >
192+ < FaExpandAlt onClick = { handleLetterSpacingIncrease } > </ FaExpandAlt >
193+ </ PanelButton >
194+ ) }
195+ { showButtons . includes ( "decrease_letter_spacing" ) && (
196+ < PanelButton onClick = { handleLetterSpacingDecrease } >
197+ < ImShrink2 > </ ImShrink2 >
198+ </ PanelButton >
199+ ) }
176200 </ >
177201 ) }
178202 </ Container >
0 commit comments