mirror of
https://github.com/ajnart/homarr.git
synced 2025-11-08 06:25:48 +01:00
🐛 Fix pull request issues
This commit is contained in:
@@ -1,7 +1,6 @@
|
|||||||
import axios from 'axios';
|
|
||||||
import { create } from 'zustand';
|
import { create } from 'zustand';
|
||||||
|
import { trcpProxyClient } from '~/utils/api';
|
||||||
import { ConfigType } from '../types/config';
|
import { ConfigType } from '../types/config';
|
||||||
import { api, trcpProxyClient } from '~/utils/api';
|
|
||||||
|
|
||||||
export const useConfigStore = create<UseConfigStoreType>((set, get) => ({
|
export const useConfigStore = create<UseConfigStoreType>((set, get) => ({
|
||||||
configs: [],
|
configs: [],
|
||||||
|
|||||||
@@ -1,57 +0,0 @@
|
|||||||
import { showNotification } from '@mantine/notifications';
|
|
||||||
import { IconCheck, IconX } from '@tabler/icons-react';
|
|
||||||
import { useMutation } from '@tanstack/react-query';
|
|
||||||
import { useTranslation } from 'next-i18next';
|
|
||||||
import { useConfigContext } from '../../../config/provider';
|
|
||||||
import { ConfigType } from '../../../types/config';
|
|
||||||
import { queryClient } from '../../server/configurations/tanstack/queryClient.tool';
|
|
||||||
|
|
||||||
export const useCopyConfigMutation = (configName: string) => {
|
|
||||||
const { config } = useConfigContext();
|
|
||||||
const { t } = useTranslation(['settings/general/config-changer']);
|
|
||||||
|
|
||||||
return useMutation({
|
|
||||||
mutationKey: ['configs/copy', { configName }],
|
|
||||||
mutationFn: () => fetchCopy(configName, config),
|
|
||||||
onSuccess() {
|
|
||||||
showNotification({
|
|
||||||
title: t('modal.copy.events.configCopied.title'),
|
|
||||||
icon: <IconCheck />,
|
|
||||||
color: 'green',
|
|
||||||
autoClose: 1500,
|
|
||||||
radius: 'md',
|
|
||||||
message: t('modal.copy.events.configCopied.message', { configName }),
|
|
||||||
});
|
|
||||||
// Invalidate a query to fetch new config
|
|
||||||
queryClient.invalidateQueries(['config/get-all']);
|
|
||||||
},
|
|
||||||
onError() {
|
|
||||||
showNotification({
|
|
||||||
title: t('modal.events.configNotCopied.title'),
|
|
||||||
icon: <IconX />,
|
|
||||||
color: 'red',
|
|
||||||
autoClose: 1500,
|
|
||||||
radius: 'md',
|
|
||||||
message: t('modal.events.configNotCopied.message', { configName }),
|
|
||||||
});
|
|
||||||
},
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
const fetchCopy = async (configName: string, config: ConfigType | undefined) => {
|
|
||||||
if (!config) {
|
|
||||||
throw new Error('config is not defiend');
|
|
||||||
}
|
|
||||||
|
|
||||||
const copiedConfig = config;
|
|
||||||
copiedConfig.configProperties.name = configName;
|
|
||||||
|
|
||||||
const response = await fetch(`/api/configs/${configName}`, {
|
|
||||||
method: 'PUT',
|
|
||||||
headers: {
|
|
||||||
'Content-Type': 'application/json',
|
|
||||||
},
|
|
||||||
body: JSON.stringify(config),
|
|
||||||
});
|
|
||||||
return response.json();
|
|
||||||
};
|
|
||||||
@@ -13,14 +13,13 @@ import {
|
|||||||
} from '@mantine/core';
|
} from '@mantine/core';
|
||||||
import { useElementSize } from '@mantine/hooks';
|
import { useElementSize } from '@mantine/hooks';
|
||||||
import { IconAlertCircle } from '@tabler/icons-react';
|
import { IconAlertCircle } from '@tabler/icons-react';
|
||||||
import { AxiosError } from 'axios';
|
|
||||||
import dayjs from 'dayjs';
|
import dayjs from 'dayjs';
|
||||||
import duration from 'dayjs/plugin/duration';
|
import duration from 'dayjs/plugin/duration';
|
||||||
import { useTranslation } from 'next-i18next';
|
import { useTranslation } from 'next-i18next';
|
||||||
import { FunctionComponent, useState } from 'react';
|
import { FunctionComponent, useState } from 'react';
|
||||||
import { useGetUsenetHistory } from '../../hooks/widgets/dashDot/api';
|
import { useGetUsenetHistory } from '../../hooks/widgets/dashDot/api';
|
||||||
import { humanFileSize } from '../../tools/humanFileSize';
|
|
||||||
import { parseDuration } from '../../tools/client/parseDuration';
|
import { parseDuration } from '../../tools/client/parseDuration';
|
||||||
|
import { humanFileSize } from '../../tools/humanFileSize';
|
||||||
|
|
||||||
dayjs.extend(duration);
|
dayjs.extend(duration);
|
||||||
|
|
||||||
@@ -65,7 +64,7 @@ export const UsenetHistoryList: FunctionComponent<UsenetHistoryListProps> = ({ a
|
|||||||
>
|
>
|
||||||
{t('modules/usenet:history.error.message')}
|
{t('modules/usenet:history.error.message')}
|
||||||
<Code mt="sm" block>
|
<Code mt="sm" block>
|
||||||
{(error as AxiosError)?.response?.data as string}
|
{error.message}
|
||||||
</Code>
|
</Code>
|
||||||
</Alert>
|
</Alert>
|
||||||
</Group>
|
</Group>
|
||||||
|
|||||||
Reference in New Issue
Block a user