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 client from 'util/client';
|
||||||
import useLocalStorage from 'util/useLocalStorage';
|
import useLocalStorage from 'util/useLocalStorage';
|
||||||
import ExtensionLangSelect from 'components/manga/ExtensionLangSelect';
|
import ExtensionLangSelect from 'components/manga/ExtensionLangSelect';
|
||||||
import { defualtLangs, langCodeToName, langSortCmp } from 'util/language';
|
import { extensionDefaultLangs, langCodeToName, langSortCmp } from 'util/language';
|
||||||
|
|
||||||
const allLangs: string[] = [];
|
const allLangs: string[] = [];
|
||||||
|
|
||||||
@@ -42,10 +42,6 @@ function groupExtensions(extensions: IExtension[]) {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
function extensionDefaultLangs() {
|
|
||||||
return [...defualtLangs(), 'all'];
|
|
||||||
}
|
|
||||||
|
|
||||||
export default function AnimeExtensions() {
|
export default function AnimeExtensions() {
|
||||||
const { setTitle, setAction } = useContext(NavbarContext);
|
const { setTitle, setAction } = useContext(NavbarContext);
|
||||||
const [shownLangs, setShownLangs] = useLocalStorage<string[]>('shownExtensionLangs', extensionDefaultLangs());
|
const [shownLangs, setShownLangs] = useLocalStorage<string[]>('shownExtensionLangs', extensionDefaultLangs());
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import ExtensionLangSelect from 'components/manga/ExtensionLangSelect';
|
|||||||
import SourceCard from 'components/anime/SourceCard';
|
import SourceCard from 'components/anime/SourceCard';
|
||||||
import NavbarContext from 'context/NavbarContext';
|
import NavbarContext from 'context/NavbarContext';
|
||||||
import client from 'util/client';
|
import client from 'util/client';
|
||||||
import { defualtLangs, langCodeToName, langSortCmp } from 'util/language';
|
import { sourceDefualtLangs, langCodeToName, langSortCmp } from 'util/language';
|
||||||
import useLocalStorage from 'util/useLocalStorage';
|
import useLocalStorage from 'util/useLocalStorage';
|
||||||
|
|
||||||
function sourceToLangList(sources: ISource[]) {
|
function sourceToLangList(sources: ISource[]) {
|
||||||
@@ -37,7 +37,7 @@ function groupByLang(sources: ISource[]) {
|
|||||||
export default function AnimeSources() {
|
export default function AnimeSources() {
|
||||||
const { setTitle, setAction } = useContext(NavbarContext);
|
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 [sources, setSources] = useState<ISource[]>([]);
|
||||||
const [fetched, setFetched] = useState<boolean>(false);
|
const [fetched, setFetched] = useState<boolean>(false);
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ import NavbarContext from 'context/NavbarContext';
|
|||||||
import client from 'util/client';
|
import client from 'util/client';
|
||||||
import useLocalStorage from 'util/useLocalStorage';
|
import useLocalStorage from 'util/useLocalStorage';
|
||||||
import ExtensionLangSelect from 'components/manga/ExtensionLangSelect';
|
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';
|
import { makeToaster } from 'components/Toast';
|
||||||
|
|
||||||
const allLangs: string[] = [];
|
const allLangs: string[] = [];
|
||||||
@@ -46,10 +46,6 @@ function groupExtensions(extensions: IExtension[]) {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
function extensionDefaultLangs() {
|
|
||||||
return [...defualtLangs(), 'all'];
|
|
||||||
}
|
|
||||||
|
|
||||||
export default function MangaExtensions() {
|
export default function MangaExtensions() {
|
||||||
const { setTitle, setAction } = useContext(NavbarContext);
|
const { setTitle, setAction } = useContext(NavbarContext);
|
||||||
const [shownLangs, setShownLangs] = useLocalStorage<string[]>('shownExtensionLangs', extensionDefaultLangs());
|
const [shownLangs, setShownLangs] = useLocalStorage<string[]>('shownExtensionLangs', extensionDefaultLangs());
|
||||||
|
|||||||
@@ -10,7 +10,9 @@ import ExtensionLangSelect from 'components/manga/ExtensionLangSelect';
|
|||||||
import SourceCard from 'components/manga/SourceCard';
|
import SourceCard from 'components/manga/SourceCard';
|
||||||
import NavbarContext from 'context/NavbarContext';
|
import NavbarContext from 'context/NavbarContext';
|
||||||
import client from 'util/client';
|
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';
|
import useLocalStorage from 'util/useLocalStorage';
|
||||||
|
|
||||||
function sourceToLangList(sources: ISource[]) {
|
function sourceToLangList(sources: ISource[]) {
|
||||||
@@ -37,12 +39,28 @@ function groupByLang(sources: ISource[]) {
|
|||||||
export default function MangaSources() {
|
export default function MangaSources() {
|
||||||
const { setTitle, setAction } = useContext(NavbarContext);
|
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 [showNsfw] = useLocalStorage<boolean>('showNsfw', true);
|
||||||
|
|
||||||
const [sources, setSources] = useState<ISource[]>([]);
|
const [sources, setSources] = useState<ISource[]>([]);
|
||||||
const [fetched, setFetched] = useState<boolean>(false);
|
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(() => {
|
useEffect(() => {
|
||||||
setTitle('Sources');
|
setTitle('Sources');
|
||||||
setAction(
|
setAction(
|
||||||
|
|||||||
@@ -93,11 +93,27 @@ export function langCodeToName(code: string): string {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function defualtLangs() {
|
function defaultNativeLang() {
|
||||||
|
return 'en'; // TODO: infer from the browser
|
||||||
|
}
|
||||||
|
|
||||||
|
export function extensionDefaultLangs() {
|
||||||
return [
|
return [
|
||||||
// todo: infer this from the browser
|
defaultNativeLang(),
|
||||||
'en',
|
'all',
|
||||||
'localSourceLang',
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
export function sourceDefualtLangs() {
|
||||||
|
return [
|
||||||
|
defaultNativeLang(),
|
||||||
|
'localsourcelang',
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
export function sourceForcedDefaultLangs(): string[] {
|
||||||
|
return [
|
||||||
|
'localsourcelang',
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user