mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
Merge pull request #4924 from thornbill/quick-connect-enabled
This commit is contained in:
commit
e5c8d440c7
2 changed files with 41 additions and 12 deletions
|
@ -19,6 +19,7 @@ import { appHost } from 'components/apphost';
|
||||||
import { useApi } from 'hooks/useApi';
|
import { useApi } from 'hooks/useApi';
|
||||||
import globalize from 'scripts/globalize';
|
import globalize from 'scripts/globalize';
|
||||||
import Dashboard from 'utils/dashboard';
|
import Dashboard from 'utils/dashboard';
|
||||||
|
import { useQuickConnectEnabled } from 'hooks/useQuickConnect';
|
||||||
|
|
||||||
export const ID = 'app-user-menu';
|
export const ID = 'app-user-menu';
|
||||||
|
|
||||||
|
@ -32,6 +33,7 @@ const AppUserMenu: FC<AppUserMenuProps> = ({
|
||||||
onMenuClose
|
onMenuClose
|
||||||
}) => {
|
}) => {
|
||||||
const { user } = useApi();
|
const { user } = useApi();
|
||||||
|
const { data: isQuickConnectEnabled } = useQuickConnectEnabled();
|
||||||
|
|
||||||
const onClientSettingsClick = useCallback(() => {
|
const onClientSettingsClick = useCallback(() => {
|
||||||
window.NativeShell?.openClientSettings();
|
window.NativeShell?.openClientSettings();
|
||||||
|
@ -138,18 +140,20 @@ const AppUserMenu: FC<AppUserMenuProps> = ({
|
||||||
])}
|
])}
|
||||||
|
|
||||||
<Divider />
|
<Divider />
|
||||||
<MenuItem
|
{isQuickConnectEnabled && (
|
||||||
component={Link}
|
<MenuItem
|
||||||
to='/quickconnect'
|
component={Link}
|
||||||
onClick={onMenuClose}
|
to='/quickconnect'
|
||||||
>
|
onClick={onMenuClose}
|
||||||
<ListItemIcon>
|
>
|
||||||
<PhonelinkLock />
|
<ListItemIcon>
|
||||||
</ListItemIcon>
|
<PhonelinkLock />
|
||||||
<ListItemText>
|
</ListItemIcon>
|
||||||
{globalize.translate('QuickConnect')}
|
<ListItemText>
|
||||||
</ListItemText>
|
{globalize.translate('QuickConnect')}
|
||||||
</MenuItem>
|
</ListItemText>
|
||||||
|
</MenuItem>
|
||||||
|
)}
|
||||||
|
|
||||||
{appHost.supports('multiserver') && (
|
{appHost.supports('multiserver') && (
|
||||||
<MenuItem
|
<MenuItem
|
||||||
|
|
25
src/hooks/useQuickConnect.ts
Normal file
25
src/hooks/useQuickConnect.ts
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
import { getQuickConnectApi } from '@jellyfin/sdk/lib/utils/api/quick-connect-api';
|
||||||
|
import { useQuery } from '@tanstack/react-query';
|
||||||
|
import { AxiosRequestConfig } from 'axios';
|
||||||
|
|
||||||
|
import { JellyfinApiContext, useApi } from './useApi';
|
||||||
|
|
||||||
|
const fetchQuickConnectEnabled = async (
|
||||||
|
apiContext: JellyfinApiContext,
|
||||||
|
options?: AxiosRequestConfig
|
||||||
|
) => {
|
||||||
|
const { api } = apiContext;
|
||||||
|
if (!api) throw new Error('No API instance available');
|
||||||
|
|
||||||
|
const response = await getQuickConnectApi(api)
|
||||||
|
.getQuickConnectEnabled(options);
|
||||||
|
return response.data;
|
||||||
|
};
|
||||||
|
|
||||||
|
export const useQuickConnectEnabled = () => {
|
||||||
|
const currentApi = useApi();
|
||||||
|
return useQuery({
|
||||||
|
queryKey: [ 'QuickConnect', 'Enabled' ],
|
||||||
|
queryFn: ({ signal }) => fetchQuickConnectEnabled(currentApi, { signal })
|
||||||
|
});
|
||||||
|
};
|
Loading…
Add table
Add a link
Reference in a new issue