Fix library view for anonymous user
This commit is contained in:
parent
9b2600c19d
commit
a8d50db14a
|
@ -3,6 +3,7 @@
|
||||||
import { useCallback, useLayoutEffect, useMemo, useState } from 'react';
|
import { useCallback, useLayoutEffect, useMemo, useState } from 'react';
|
||||||
|
|
||||||
import DataLoader from '@/components/wrap/DataLoader';
|
import DataLoader from '@/components/wrap/DataLoader';
|
||||||
|
import { useAuth } from '@/context/AuthContext';
|
||||||
import { useLibrary } from '@/context/LibraryContext';
|
import { useLibrary } from '@/context/LibraryContext';
|
||||||
import useLocalStorage from '@/hooks/useLocalStorage';
|
import useLocalStorage from '@/hooks/useLocalStorage';
|
||||||
import { ILibraryItem, LocationHead } from '@/models/library';
|
import { ILibraryItem, LocationHead } from '@/models/library';
|
||||||
|
@ -15,6 +16,7 @@ import SearchPanel from './SearchPanel';
|
||||||
|
|
||||||
function LibraryPage() {
|
function LibraryPage() {
|
||||||
const library = useLibrary();
|
const library = useLibrary();
|
||||||
|
const { user } = useAuth();
|
||||||
const [items, setItems] = useState<ILibraryItem[]>([]);
|
const [items, setItems] = useState<ILibraryItem[]>([]);
|
||||||
|
|
||||||
const [query, setQuery] = useState('');
|
const [query, setQuery] = useState('');
|
||||||
|
@ -34,12 +36,12 @@ function LibraryPage() {
|
||||||
head: head,
|
head: head,
|
||||||
path: path,
|
path: path,
|
||||||
query: query,
|
query: query,
|
||||||
isEditor: isEditor,
|
isEditor: user ? isEditor : undefined,
|
||||||
isOwned: isOwned,
|
isOwned: user ? isOwned : undefined,
|
||||||
isSubscribed: isSubscribed,
|
isSubscribed: user ? isSubscribed : undefined,
|
||||||
isVisible: isVisible
|
isVisible: user ? isVisible : true
|
||||||
}),
|
}),
|
||||||
[head, path, query, isEditor, isOwned, isSubscribed, isVisible]
|
[head, path, query, isEditor, isOwned, isSubscribed, isVisible, user]
|
||||||
);
|
);
|
||||||
|
|
||||||
useLayoutEffect(() => {
|
useLayoutEffect(() => {
|
||||||
|
|
|
@ -11,6 +11,7 @@ import DropdownButton from '@/components/ui/DropdownButton';
|
||||||
import MiniButton from '@/components/ui/MiniButton';
|
import MiniButton from '@/components/ui/MiniButton';
|
||||||
import SearchBar from '@/components/ui/SearchBar';
|
import SearchBar from '@/components/ui/SearchBar';
|
||||||
import SelectorButton from '@/components/ui/SelectorButton';
|
import SelectorButton from '@/components/ui/SelectorButton';
|
||||||
|
import { useAuth } from '@/context/AuthContext';
|
||||||
import useDropdown from '@/hooks/useDropdown';
|
import useDropdown from '@/hooks/useDropdown';
|
||||||
import { LocationHead } from '@/models/library';
|
import { LocationHead } from '@/models/library';
|
||||||
import { HelpTopic } from '@/models/miscellaneous';
|
import { HelpTopic } from '@/models/miscellaneous';
|
||||||
|
@ -58,6 +59,7 @@ function SearchPanel({
|
||||||
isEditor,
|
isEditor,
|
||||||
toggleEditor
|
toggleEditor
|
||||||
}: SearchPanelProps) {
|
}: SearchPanelProps) {
|
||||||
|
const { user } = useAuth();
|
||||||
const headMenu = useDropdown();
|
const headMenu = useDropdown();
|
||||||
|
|
||||||
const handleChange = useCallback(
|
const handleChange = useCallback(
|
||||||
|
@ -83,29 +85,32 @@ function SearchPanel({
|
||||||
{filtered} из {total}
|
{filtered} из {total}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className='cc-icons'>
|
{user ? (
|
||||||
<MiniButton
|
<div className='cc-icons'>
|
||||||
title='Видимость'
|
<MiniButton
|
||||||
icon={<VisibilityIcon value={true} className={tripleToggleColor(isVisible)} />}
|
title='Видимость'
|
||||||
onClick={toggleVisible}
|
icon={<VisibilityIcon value={true} className={tripleToggleColor(isVisible)} />}
|
||||||
/>
|
onClick={toggleVisible}
|
||||||
<MiniButton
|
/>
|
||||||
title='Я - Подписчик'
|
<MiniButton
|
||||||
icon={<SubscribeIcon value={true} className={tripleToggleColor(isSubscribed)} />}
|
title='Я - Подписчик'
|
||||||
onClick={toggleSubscribed}
|
icon={<SubscribeIcon value={true} className={tripleToggleColor(isSubscribed)} />}
|
||||||
/>
|
onClick={toggleSubscribed}
|
||||||
<MiniButton
|
/>
|
||||||
title='Я - Владелец'
|
|
||||||
icon={<IconOwner size='1.25rem' className={tripleToggleColor(isOwned)} />}
|
|
||||||
onClick={toggleOwned}
|
|
||||||
/>
|
|
||||||
|
|
||||||
<MiniButton
|
<MiniButton
|
||||||
title='Я - Редактор'
|
title='Я - Владелец'
|
||||||
icon={<IconEditor size='1.25rem' className={tripleToggleColor(isEditor)} />}
|
icon={<IconOwner size='1.25rem' className={tripleToggleColor(isOwned)} />}
|
||||||
onClick={toggleEditor}
|
onClick={toggleOwned}
|
||||||
/>
|
/>
|
||||||
</div>
|
|
||||||
|
<MiniButton
|
||||||
|
title='Я - Редактор'
|
||||||
|
icon={<IconEditor size='1.25rem' className={tripleToggleColor(isEditor)} />}
|
||||||
|
onClick={toggleEditor}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
) : null}
|
||||||
|
|
||||||
<div className='flex items-center h-full mx-auto'>
|
<div className='flex items-center h-full mx-auto'>
|
||||||
<SearchBar
|
<SearchBar
|
||||||
|
|
Loading…
Reference in New Issue
Block a user