mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
Fix additional pages
This commit is contained in:
parent
52477f04e1
commit
1752d0bf1a
5 changed files with 12 additions and 12 deletions
|
@ -1,9 +1,8 @@
|
||||||
import type { BaseItemDto, DeviceInfoDto, UserDto } from '@jellyfin/sdk/lib/generated-client';
|
import type { BaseItemDto, DeviceInfoDto, UserDto } from '@jellyfin/sdk/lib/generated-client';
|
||||||
import React, { useCallback, useEffect, useState, useRef } from 'react';
|
import React, { useCallback, useEffect, useState, useRef, useMemo } from 'react';
|
||||||
import { useSearchParams } from 'react-router-dom';
|
import { useSearchParams } from 'react-router-dom';
|
||||||
|
|
||||||
import loading from '../../../../components/loading/loading';
|
import loading from '../../../../components/loading/loading';
|
||||||
import libraryMenu from '../../../../scripts/libraryMenu';
|
|
||||||
import globalize from '../../../../lib/globalize';
|
import globalize from '../../../../lib/globalize';
|
||||||
import toast from '../../../../components/toast/toast';
|
import toast from '../../../../components/toast/toast';
|
||||||
import SectionTabs from '../../../../components/dashboard/users/SectionTabs';
|
import SectionTabs from '../../../../components/dashboard/users/SectionTabs';
|
||||||
|
@ -28,6 +27,7 @@ const UserLibraryAccess = () => {
|
||||||
const [channelsItems, setChannelsItems] = useState<ItemsArr[]>([]);
|
const [channelsItems, setChannelsItems] = useState<ItemsArr[]>([]);
|
||||||
const [mediaFoldersItems, setMediaFoldersItems] = useState<ItemsArr[]>([]);
|
const [mediaFoldersItems, setMediaFoldersItems] = useState<ItemsArr[]>([]);
|
||||||
const [devicesItems, setDevicesItems] = useState<ItemsArr[]>([]);
|
const [devicesItems, setDevicesItems] = useState<ItemsArr[]>([]);
|
||||||
|
const libraryMenu = useMemo(async () => ((await import('../../../../scripts/libraryMenu')).default), []);
|
||||||
|
|
||||||
const element = useRef<HTMLDivElement>(null);
|
const element = useRef<HTMLDivElement>(null);
|
||||||
|
|
||||||
|
@ -133,7 +133,7 @@ const UserLibraryAccess = () => {
|
||||||
|
|
||||||
const loadUser = useCallback((user: UserDto, mediaFolders: BaseItemDto[], channels: BaseItemDto[], devices: DeviceInfoDto[]) => {
|
const loadUser = useCallback((user: UserDto, mediaFolders: BaseItemDto[], channels: BaseItemDto[], devices: DeviceInfoDto[]) => {
|
||||||
setUserName(user.Name || '');
|
setUserName(user.Name || '');
|
||||||
libraryMenu.setTitle(user.Name);
|
void libraryMenu.then(menu => menu.setTitle(user.Name));
|
||||||
loadChannels(user, channels);
|
loadChannels(user, channels);
|
||||||
loadMediaFolders(user, mediaFolders);
|
loadMediaFolders(user, mediaFolders);
|
||||||
loadDevices(user, devices);
|
loadDevices(user, devices);
|
||||||
|
|
|
@ -2,11 +2,10 @@ import type { AccessSchedule, ParentalRating, UserDto } from '@jellyfin/sdk/lib/
|
||||||
import { UnratedItem } from '@jellyfin/sdk/lib/generated-client/models/unrated-item';
|
import { UnratedItem } from '@jellyfin/sdk/lib/generated-client/models/unrated-item';
|
||||||
import { DynamicDayOfWeek } from '@jellyfin/sdk/lib/generated-client/models/dynamic-day-of-week';
|
import { DynamicDayOfWeek } from '@jellyfin/sdk/lib/generated-client/models/dynamic-day-of-week';
|
||||||
import escapeHTML from 'escape-html';
|
import escapeHTML from 'escape-html';
|
||||||
import React, { useCallback, useEffect, useState, useRef } from 'react';
|
import React, { useCallback, useEffect, useState, useRef, useMemo } from 'react';
|
||||||
import { useSearchParams } from 'react-router-dom';
|
import { useSearchParams } from 'react-router-dom';
|
||||||
|
|
||||||
import globalize from '../../../../lib/globalize';
|
import globalize from '../../../../lib/globalize';
|
||||||
import LibraryMenu from '../../../../scripts/libraryMenu';
|
|
||||||
import AccessScheduleList from '../../../../components/dashboard/users/AccessScheduleList';
|
import AccessScheduleList from '../../../../components/dashboard/users/AccessScheduleList';
|
||||||
import TagList from '../../../../components/dashboard/users/TagList';
|
import TagList from '../../../../components/dashboard/users/TagList';
|
||||||
import ButtonElement from '../../../../elements/ButtonElement';
|
import ButtonElement from '../../../../elements/ButtonElement';
|
||||||
|
@ -69,6 +68,7 @@ const UserParentalControl = () => {
|
||||||
const [ accessSchedules, setAccessSchedules ] = useState<AccessSchedule[]>([]);
|
const [ accessSchedules, setAccessSchedules ] = useState<AccessSchedule[]>([]);
|
||||||
const [ allowedTags, setAllowedTags ] = useState<string[]>([]);
|
const [ allowedTags, setAllowedTags ] = useState<string[]>([]);
|
||||||
const [ blockedTags, setBlockedTags ] = useState<string[]>([]);
|
const [ blockedTags, setBlockedTags ] = useState<string[]>([]);
|
||||||
|
const libraryMenu = useMemo(async () => ((await import('../../../../scripts/libraryMenu')).default), []);
|
||||||
|
|
||||||
const element = useRef<HTMLDivElement>(null);
|
const element = useRef<HTMLDivElement>(null);
|
||||||
|
|
||||||
|
@ -219,7 +219,7 @@ const UserParentalControl = () => {
|
||||||
}
|
}
|
||||||
|
|
||||||
setUserName(user.Name || '');
|
setUserName(user.Name || '');
|
||||||
LibraryMenu.setTitle(user.Name);
|
void libraryMenu.then(menu => menu.setTitle(user.Name));
|
||||||
loadUnratedItems(user);
|
loadUnratedItems(user);
|
||||||
|
|
||||||
loadAllowedTags(user.Policy?.AllowedTags || []);
|
loadAllowedTags(user.Policy?.AllowedTags || []);
|
||||||
|
|
|
@ -5,7 +5,6 @@ import { useSearchParams } from 'react-router-dom';
|
||||||
|
|
||||||
import Dashboard from '../../../../utils/dashboard';
|
import Dashboard from '../../../../utils/dashboard';
|
||||||
import globalize from '../../../../lib/globalize';
|
import globalize from '../../../../lib/globalize';
|
||||||
import LibraryMenu from '../../../../scripts/libraryMenu';
|
|
||||||
import ButtonElement from '../../../../elements/ButtonElement';
|
import ButtonElement from '../../../../elements/ButtonElement';
|
||||||
import CheckBoxElement from '../../../../elements/CheckBoxElement';
|
import CheckBoxElement from '../../../../elements/CheckBoxElement';
|
||||||
import InputElement from '../../../../elements/InputElement';
|
import InputElement from '../../../../elements/InputElement';
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import type { UserDto } from '@jellyfin/sdk/lib/generated-client';
|
import type { UserDto } from '@jellyfin/sdk/lib/generated-client';
|
||||||
import { ImageType } from '@jellyfin/sdk/lib/generated-client/models/image-type';
|
import { ImageType } from '@jellyfin/sdk/lib/generated-client/models/image-type';
|
||||||
import React, { FunctionComponent, useEffect, useState, useRef, useCallback } from 'react';
|
import React, { FunctionComponent, useEffect, useState, useRef, useCallback, useMemo } from 'react';
|
||||||
import { useSearchParams } from 'react-router-dom';
|
import { useSearchParams } from 'react-router-dom';
|
||||||
|
|
||||||
import Dashboard from '../../../../utils/dashboard';
|
import Dashboard from '../../../../utils/dashboard';
|
||||||
|
@ -18,6 +18,7 @@ const UserProfile: FunctionComponent = () => {
|
||||||
const [ searchParams ] = useSearchParams();
|
const [ searchParams ] = useSearchParams();
|
||||||
const userId = searchParams.get('userId');
|
const userId = searchParams.get('userId');
|
||||||
const [ userName, setUserName ] = useState('');
|
const [ userName, setUserName ] = useState('');
|
||||||
|
const libraryMenu = useMemo(async () => ((await import('../../../../scripts/libraryMenu')).default), []);
|
||||||
|
|
||||||
const element = useRef<HTMLDivElement>(null);
|
const element = useRef<HTMLDivElement>(null);
|
||||||
|
|
||||||
|
@ -41,7 +42,7 @@ const UserProfile: FunctionComponent = () => {
|
||||||
}
|
}
|
||||||
|
|
||||||
setUserName(user.Name);
|
setUserName(user.Name);
|
||||||
LibraryMenu.setTitle(user.Name);
|
void libraryMenu.then(menu => menu.setTitle(user.Name));
|
||||||
|
|
||||||
let imageUrl = 'assets/img/avatar.png';
|
let imageUrl = 'assets/img/avatar.png';
|
||||||
if (user.PrimaryImageTag) {
|
if (user.PrimaryImageTag) {
|
||||||
|
|
|
@ -1,8 +1,7 @@
|
||||||
import React, { FunctionComponent, useCallback, useEffect, useRef } from 'react';
|
import React, { FunctionComponent, useCallback, useEffect, useMemo, useRef } from 'react';
|
||||||
import type { UserDto } from '@jellyfin/sdk/lib/generated-client';
|
import type { UserDto } from '@jellyfin/sdk/lib/generated-client';
|
||||||
import Dashboard from '../../../utils/dashboard';
|
import Dashboard from '../../../utils/dashboard';
|
||||||
import globalize from '../../../lib/globalize';
|
import globalize from '../../../lib/globalize';
|
||||||
import LibraryMenu from '../../../scripts/libraryMenu';
|
|
||||||
import confirm from '../../confirm/confirm';
|
import confirm from '../../confirm/confirm';
|
||||||
import loading from '../../loading/loading';
|
import loading from '../../loading/loading';
|
||||||
import toast from '../../toast/toast';
|
import toast from '../../toast/toast';
|
||||||
|
@ -16,6 +15,7 @@ type IProps = {
|
||||||
const UserPasswordForm: FunctionComponent<IProps> = ({ userId }: IProps) => {
|
const UserPasswordForm: FunctionComponent<IProps> = ({ userId }: IProps) => {
|
||||||
const element = useRef<HTMLDivElement>(null);
|
const element = useRef<HTMLDivElement>(null);
|
||||||
const user = useRef<UserDto>();
|
const user = useRef<UserDto>();
|
||||||
|
const libraryMenu = useMemo(async () => ((await import('../../../scripts/libraryMenu')).default), []);
|
||||||
|
|
||||||
const loadUser = useCallback(async () => {
|
const loadUser = useCallback(async () => {
|
||||||
const page = element.current;
|
const page = element.current;
|
||||||
|
@ -37,7 +37,7 @@ const UserPasswordForm: FunctionComponent<IProps> = ({ userId }: IProps) => {
|
||||||
throw new Error('Unexpected null user policy or configuration');
|
throw new Error('Unexpected null user policy or configuration');
|
||||||
}
|
}
|
||||||
|
|
||||||
LibraryMenu.setTitle(user.current.Name);
|
(await libraryMenu).setTitle(user.current.Name);
|
||||||
|
|
||||||
if (user.current.HasConfiguredPassword) {
|
if (user.current.HasConfiguredPassword) {
|
||||||
if (!user.current.Policy?.IsAdministrator) {
|
if (!user.current.Policy?.IsAdministrator) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue