default languages cleanup, force Local source enabled
This commit is contained in:
@@ -11,7 +11,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';
|
||||
|
||||
const allLangs: string[] = [];
|
||||
|
||||
@@ -42,10 +42,6 @@ function groupExtensions(extensions: IExtension[]) {
|
||||
return result;
|
||||
}
|
||||
|
||||
function extensionDefaultLangs() {
|
||||
return [...defualtLangs(), 'all'];
|
||||
}
|
||||
|
||||
export default function AnimeExtensions() {
|
||||
const { setTitle, setAction } = useContext(NavbarContext);
|
||||
const [shownLangs, setShownLangs] = useLocalStorage<string[]>('shownExtensionLangs', extensionDefaultLangs());
|
||||
|
||||
@@ -10,7 +10,7 @@ import ExtensionLangSelect from 'components/manga/ExtensionLangSelect';
|
||||
import SourceCard from 'components/anime/SourceCard';
|
||||
import NavbarContext from 'context/NavbarContext';
|
||||
import client from 'util/client';
|
||||
import { defualtLangs, langCodeToName, langSortCmp } from 'util/language';
|
||||
import { sourceDefualtLangs, langCodeToName, langSortCmp } from 'util/language';
|
||||
import useLocalStorage from 'util/useLocalStorage';
|
||||
|
||||
function sourceToLangList(sources: ISource[]) {
|
||||
@@ -37,7 +37,7 @@ function groupByLang(sources: ISource[]) {
|
||||
export default function AnimeSources() {
|
||||
const { setTitle, setAction } = useContext(NavbarContext);
|
||||
|
||||
const [shownLangs, setShownLangs] = useLocalStorage<string[]>('shownSourceLangs', defualtLangs());
|
||||
const [shownLangs, setShownLangs] = useLocalStorage<string[]>('shownSourceLangs', sourceDefualtLangs());
|
||||
|
||||
const [sources, setSources] = useState<ISource[]>([]);
|
||||
const [fetched, setFetched] = useState<boolean>(false);
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -93,11 +93,27 @@ export function langCodeToName(code: string): string {
|
||||
return result;
|
||||
}
|
||||
|
||||
export function defualtLangs() {
|
||||
function defaultNativeLang() {
|
||||
return 'en'; // TODO: infer from the browser
|
||||
}
|
||||
|
||||
export function extensionDefaultLangs() {
|
||||
return [
|
||||
// todo: infer this from the browser
|
||||
'en',
|
||||
'localSourceLang',
|
||||
defaultNativeLang(),
|
||||
'all',
|
||||
];
|
||||
}
|
||||
|
||||
export function sourceDefualtLangs() {
|
||||
return [
|
||||
defaultNativeLang(),
|
||||
'localsourcelang',
|
||||
];
|
||||
}
|
||||
|
||||
export function sourceForcedDefaultLangs(): string[] {
|
||||
return [
|
||||
'localsourcelang',
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user