default languages cleanup, force Local source enabled

This commit is contained in:
Aria Moradi
2021-10-18 14:02:51 +03:30
parent 2049c329d7
commit 23c8e649a1
5 changed files with 44 additions and 18 deletions

View File

@@ -14,7 +14,7 @@ import NavbarContext from 'context/NavbarContext';
import client from 'util/client';
import useLocalStorage from 'util/useLocalStorage';
import ExtensionLangSelect from 'components/manga/ExtensionLangSelect';
import { defualtLangs, langCodeToName, langSortCmp } from 'util/language';
import { extensionDefaultLangs, langCodeToName, langSortCmp } from 'util/language';
import { makeToaster } from 'components/Toast';
const allLangs: string[] = [];
@@ -46,10 +46,6 @@ function groupExtensions(extensions: IExtension[]) {
return result;
}
function extensionDefaultLangs() {
return [...defualtLangs(), 'all'];
}
export default function MangaExtensions() {
const { setTitle, setAction } = useContext(NavbarContext);
const [shownLangs, setShownLangs] = useLocalStorage<string[]>('shownExtensionLangs', extensionDefaultLangs());

View File

@@ -10,7 +10,9 @@ import ExtensionLangSelect from 'components/manga/ExtensionLangSelect';
import SourceCard from 'components/manga/SourceCard';
import NavbarContext from 'context/NavbarContext';
import client from 'util/client';
import { defualtLangs, langCodeToName, langSortCmp } from 'util/language';
import {
sourceDefualtLangs, sourceForcedDefaultLangs, langCodeToName, langSortCmp,
} from 'util/language';
import useLocalStorage from 'util/useLocalStorage';
function sourceToLangList(sources: ISource[]) {
@@ -37,12 +39,28 @@ function groupByLang(sources: ISource[]) {
export default function MangaSources() {
const { setTitle, setAction } = useContext(NavbarContext);
const [shownLangs, setShownLangs] = useLocalStorage<string[]>('shownSourceLangs', defualtLangs());
const [shownLangs, setShownLangs] = useLocalStorage<string[]>('shownSourceLangs', sourceDefualtLangs());
const [showNsfw] = useLocalStorage<boolean>('showNsfw', true);
const [sources, setSources] = useState<ISource[]>([]);
const [fetched, setFetched] = useState<boolean>(false);
useEffect(() => {
// make sure all of forcedDefaultLangs() exists in shownLangs
sourceForcedDefaultLangs().forEach((forcedLang) => {
let hasLang = false;
shownLangs.forEach((lang) => {
if (lang === forcedLang) hasLang = true;
});
if (!hasLang) {
setShownLangs((shownLangsCopy) => {
shownLangsCopy.push(forcedLang);
return shownLangsCopy;
});
}
});
}, [shownLangs]);
useEffect(() => {
setTitle('Sources');
setAction(