1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00

use single state and local storage

This commit is contained in:
grafixeyehero 2022-10-21 21:47:54 +03:00
parent f40c565e4a
commit 6341a71fec
15 changed files with 485 additions and 508 deletions

View file

@ -1,30 +1,32 @@
import React, { FC, useCallback, useEffect, useRef, useState } from 'react';
import AlphaPicker from '../../components/alphaPicker/alphaPicker';
import { QueryI } from './interface';
import { ViewSettingsI } from './interface';
interface AlphaPickerContainerProps {
getQuery: () => QueryI;
setQuery: React.Dispatch<React.SetStateAction<QueryI>>;
viewSettings: ViewSettingsI
setViewSettings: React.Dispatch<React.SetStateAction<ViewSettingsI>>;
}
const AlphaPickerContainer: FC<AlphaPickerContainerProps> = ({ getQuery, setQuery }) => {
const AlphaPickerContainer: FC<AlphaPickerContainerProps> = ({ viewSettings, setViewSettings }) => {
const [ alphaPicker, setAlphaPicker ] = useState<AlphaPicker>();
const element = useRef<HTMLDivElement>(null);
const query = getQuery();
alphaPicker?.updateControls(query);
alphaPicker?.updateControls(viewSettings);
const onAlphaPickerChange = useCallback((e) => {
const newValue = (e as CustomEvent).detail.value;
let updatedValue;
let updatedValue: React.SetStateAction<ViewSettingsI>;
if (newValue === '#') {
updatedValue = {NameLessThan: 'A'};
} else {
updatedValue = {NameStartsWith: newValue};
}
setQuery({StartIndex: 0, ...updatedValue});
}, [setQuery]);
setViewSettings((prevState) => ({
...prevState,
StartIndex: 0,
...updatedValue
}));
}, [setViewSettings]);
useEffect(() => {
const alphaPickerElement = element.current;