From 35da3b76c876c1279318b1b3f4896ba7f53c3ab0 Mon Sep 17 00:00:00 2001 From: Aria Moradi Date: Mon, 18 Oct 2021 14:22:33 +0330 Subject: [PATCH] force Local source at LangSelect --- src/components/manga/ExtensionLangSelect.tsx | 23 ++++++++++++++++++-- src/screens/manga/MangaSources.tsx | 3 ++- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/src/components/manga/ExtensionLangSelect.tsx b/src/components/manga/ExtensionLangSelect.tsx index d076c550..3ec87d28 100644 --- a/src/components/manga/ExtensionLangSelect.tsx +++ b/src/components/manga/ExtensionLangSelect.tsx @@ -28,16 +28,31 @@ const useStyles = makeStyles(() => createStyles({ }, })); +function removeAll(firstList: any[], secondList: any[]) { + console.log(secondList); + secondList.forEach((item) => { + const index = firstList.indexOf(item); + if (index !== -1) { + firstList.splice(index, 1); + } + }); + + return firstList; +} + interface IProps { shownLangs: string[] setShownLangs: (arg0: string[]) => void allLangs: string[] + forcedLangs?: string[] } export default function ExtensionLangSelect(props: IProps) { - const { shownLangs, setShownLangs, allLangs } = props; + const { + shownLangs, setShownLangs, allLangs, forcedLangs, + } = props; // hold a copy and only sate state on parent when OK pressed, improves performance - const [mShownLangs, setMShownLangs] = useState(shownLangs); + const [mShownLangs, setMShownLangs] = useState(removeAll(shownLangs, forcedLangs!)); const classes = useStyles(); const [open, setOpen] = useState(false); @@ -109,3 +124,7 @@ export default function ExtensionLangSelect(props: IProps) { ); } + +ExtensionLangSelect.defaultProps = { + forcedLangs: [] as string[], +}; diff --git a/src/screens/manga/MangaSources.tsx b/src/screens/manga/MangaSources.tsx index 1db560c8..2a34ec2a 100644 --- a/src/screens/manga/MangaSources.tsx +++ b/src/screens/manga/MangaSources.tsx @@ -59,7 +59,7 @@ export default function MangaSources() { }); } }); - }, [shownLangs]); + }, []); useEffect(() => { setTitle('Sources'); @@ -68,6 +68,7 @@ export default function MangaSources() { shownLangs={shownLangs} setShownLangs={setShownLangs} allLangs={sourceToLangList(sources)} + forcedLangs={sourceForcedDefaultLangs()} />, ); }, [shownLangs, sources]);