mirror of
https://github.com/ajnart/homarr.git
synced 2025-11-09 06:55:51 +01:00
♻️ Refactor hooks
This commit is contained in:
@@ -2,7 +2,7 @@ import { ActionIcon, createStyles } from '@mantine/core';
|
|||||||
import { useDisclosure } from '@mantine/hooks';
|
import { useDisclosure } from '@mantine/hooks';
|
||||||
import { IconChevronLeft, IconChevronRight } from '@tabler/icons';
|
import { IconChevronLeft, IconChevronRight } from '@tabler/icons';
|
||||||
import { useConfigContext } from '../../../../config/provider';
|
import { useConfigContext } from '../../../../config/provider';
|
||||||
import { useScreenLargerThan } from '../../../../tools/hooks/useScreenLargerThan';
|
import { useScreenLargerThan } from '../../../../hooks/useScreenLargerThan';
|
||||||
import { MobileRibbonSidebarDrawer } from './MobileRibbonSidebarDrawer';
|
import { MobileRibbonSidebarDrawer } from './MobileRibbonSidebarDrawer';
|
||||||
|
|
||||||
export const MobileRibbons = () => {
|
export const MobileRibbons = () => {
|
||||||
|
|||||||
@@ -18,10 +18,10 @@ import { useDebouncedValue } from '@mantine/hooks';
|
|||||||
import { IconSearch, IconX } from '@tabler/icons';
|
import { IconSearch, IconX } from '@tabler/icons';
|
||||||
import { useEffect, useState } from 'react';
|
import { useEffect, useState } from 'react';
|
||||||
import { ICON_PICKER_SLICE_LIMIT } from '../../../../../../../../data/constants';
|
import { ICON_PICKER_SLICE_LIMIT } from '../../../../../../../../data/constants';
|
||||||
import { useRepositoryIconsQuery } from '../../../../../../../tools/hooks/useRepositoryIconsQuery';
|
|
||||||
import { IconSelectorItem } from '../../../../../../../types/iconSelector/iconSelectorItem';
|
import { IconSelectorItem } from '../../../../../../../types/iconSelector/iconSelectorItem';
|
||||||
import { WalkxcodeRepositoryIcon } from '../../../../../../../types/iconSelector/repositories/walkxcodeIconRepository';
|
import { WalkxcodeRepositoryIcon } from '../../../../../../../types/iconSelector/repositories/walkxcodeIconRepository';
|
||||||
import { AppType } from '../../../../../../../types/app';
|
import { AppType } from '../../../../../../../types/app';
|
||||||
|
import { useRepositoryIconsQuery } from '../../../../../../../hooks/useRepositoryIconsQuery';
|
||||||
|
|
||||||
interface IconSelectorProps {
|
interface IconSelectorProps {
|
||||||
form: UseFormReturnType<AppType, (values: AppType) => AppType>;
|
form: UseFormReturnType<AppType, (values: AppType) => AppType>;
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { Group, Stack } from '@mantine/core';
|
import { Group, Stack } from '@mantine/core';
|
||||||
import { useMemo } from 'react';
|
import { useMemo } from 'react';
|
||||||
import { useConfigContext } from '../../../config/provider';
|
import { useConfigContext } from '../../../config/provider';
|
||||||
import { useScreenSmallerThan } from '../../../tools/hooks/useScreenSmallerThan';
|
import { useScreenSmallerThan } from '../../../hooks/useScreenSmallerThan';
|
||||||
import { CategoryType } from '../../../types/category';
|
import { CategoryType } from '../../../types/category';
|
||||||
import { WrapperType } from '../../../types/wrapper';
|
import { WrapperType } from '../../../types/wrapper';
|
||||||
import { DashboardCategory } from '../Wrappers/Category/Category';
|
import { DashboardCategory } from '../Wrappers/Category/Category';
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { ActionIcon, Button, Text, Tooltip } from '@mantine/core';
|
import { ActionIcon, Button, Text, Tooltip } from '@mantine/core';
|
||||||
import { IconEdit, IconEditOff } from '@tabler/icons';
|
import { IconEdit, IconEditOff } from '@tabler/icons';
|
||||||
import { useTranslation } from 'next-i18next';
|
import { useTranslation } from 'next-i18next';
|
||||||
import { useScreenLargerThan } from '../../../tools/hooks/useScreenLargerThan';
|
import { useScreenLargerThan } from '../../../hooks/useScreenLargerThan';
|
||||||
import { useEditModeStore } from './useEditModeStore';
|
import { useEditModeStore } from './useEditModeStore';
|
||||||
|
|
||||||
export const ViewToggleButton = () => {
|
export const ViewToggleButton = () => {
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import { ActionIcon, Button, Popover, Text, Tooltip } from '@mantine/core';
|
|||||||
import { IconEditCircle, IconEditCircleOff, IconX } from '@tabler/icons';
|
import { IconEditCircle, IconEditCircleOff, IconX } from '@tabler/icons';
|
||||||
import { Trans, useTranslation } from 'next-i18next';
|
import { Trans, useTranslation } from 'next-i18next';
|
||||||
import { useState } from 'react';
|
import { useState } from 'react';
|
||||||
import { useScreenSmallerThan } from '../../../../../tools/hooks/useScreenSmallerThan';
|
import { useScreenSmallerThan } from '../../../../../hooks/useScreenSmallerThan';
|
||||||
|
|
||||||
import { useEditModeStore } from '../../../../Dashboard/Views/useEditModeStore';
|
import { useEditModeStore } from '../../../../Dashboard/Views/useEditModeStore';
|
||||||
|
|
||||||
|
|||||||
@@ -4,15 +4,15 @@ import { Results } from 'sabnzbd-api';
|
|||||||
import {
|
import {
|
||||||
UsenetQueueRequestParams,
|
UsenetQueueRequestParams,
|
||||||
UsenetQueueResponse,
|
UsenetQueueResponse,
|
||||||
} from '../../pages/api/modules/usenet/queue';
|
} from '../pages/api/modules/usenet/queue';
|
||||||
import {
|
import {
|
||||||
UsenetHistoryRequestParams,
|
UsenetHistoryRequestParams,
|
||||||
UsenetHistoryResponse,
|
UsenetHistoryResponse,
|
||||||
} from '../../pages/api/modules/usenet/history';
|
} from '../pages/api/modules/usenet/history';
|
||||||
import { UsenetInfoRequestParams, UsenetInfoResponse } from '../../pages/api/modules/usenet';
|
import { UsenetInfoRequestParams, UsenetInfoResponse } from '../pages/api/modules/usenet';
|
||||||
import { UsenetPauseRequestParams } from '../../pages/api/modules/usenet/pause';
|
import { UsenetPauseRequestParams } from '../pages/api/modules/usenet/pause';
|
||||||
import { queryClient } from '../queryClient';
|
import { queryClient } from '../tools/queryClient';
|
||||||
import { UsenetResumeRequestParams } from '../../pages/api/modules/usenet/resume';
|
import { UsenetResumeRequestParams } from '../pages/api/modules/usenet/resume';
|
||||||
|
|
||||||
const POLLING_INTERVAL = 2000;
|
const POLLING_INTERVAL = 2000;
|
||||||
|
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
import { useQuery } from '@tanstack/react-query';
|
import { useQuery } from '@tanstack/react-query';
|
||||||
import { IconSelectorItem } from '../../types/iconSelector/iconSelectorItem';
|
import { IconSelectorItem } from '../types/iconSelector/iconSelectorItem';
|
||||||
|
|
||||||
export const useRepositoryIconsQuery = <TRepositoryIcon extends object>({
|
export const useRepositoryIconsQuery = <TRepositoryIcon extends object>({
|
||||||
url,
|
url,
|
||||||
@@ -2,7 +2,7 @@ import { Center, Stack, Text, Title } from '@mantine/core';
|
|||||||
import { IconClock } from '@tabler/icons';
|
import { IconClock } from '@tabler/icons';
|
||||||
import dayjs from 'dayjs';
|
import dayjs from 'dayjs';
|
||||||
import { useEffect, useRef, useState } from 'react';
|
import { useEffect, useRef, useState } from 'react';
|
||||||
import { useSetSafeInterval } from '../../tools/hooks/useSetSafeInterval';
|
import { useSetSafeInterval } from '../../hooks/useSetSafeInterval';
|
||||||
import { defineWidget } from '../helper';
|
import { defineWidget } from '../helper';
|
||||||
import { IWidget } from '../widgets';
|
import { IWidget } from '../widgets';
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import axios from 'axios';
|
|||||||
import { useTranslation } from 'next-i18next';
|
import { useTranslation } from 'next-i18next';
|
||||||
import { useEffect, useState } from 'react';
|
import { useEffect, useState } from 'react';
|
||||||
import { useConfigContext } from '../../config/provider';
|
import { useConfigContext } from '../../config/provider';
|
||||||
import { useSetSafeInterval } from '../../tools/hooks/useSetSafeInterval';
|
import { useSetSafeInterval } from '../../hooks/useSetSafeInterval';
|
||||||
import { humanFileSize } from '../../tools/humanFileSize';
|
import { humanFileSize } from '../../tools/humanFileSize';
|
||||||
import { defineWidget } from '../helper';
|
import { defineWidget } from '../helper';
|
||||||
import { IWidget } from '../widgets';
|
import { IWidget } from '../widgets';
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ 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 { useConfigContext } from '../../config/provider';
|
import { useConfigContext } from '../../config/provider';
|
||||||
import { useGetUsenetInfo, usePauseUsenetQueue, useResumeUsenetQueue } from '../../tools/hooks/api';
|
import { useGetUsenetInfo, usePauseUsenetQueue, useResumeUsenetQueue } from '../../hooks/api';
|
||||||
import { humanFileSize } from '../../tools/humanFileSize';
|
import { humanFileSize } from '../../tools/humanFileSize';
|
||||||
import { AppIntegrationType } from '../../types/app';
|
import { AppIntegrationType } from '../../types/app';
|
||||||
import { defineWidget } from '../helper';
|
import { defineWidget } from '../helper';
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ 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 '../../tools/hooks/api';
|
import { useGetUsenetHistory } from '../../hooks/api';
|
||||||
import { humanFileSize } from '../../tools/humanFileSize';
|
import { humanFileSize } from '../../tools/humanFileSize';
|
||||||
import { parseDuration } from '../../tools/parseDuration';
|
import { parseDuration } from '../../tools/parseDuration';
|
||||||
|
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ 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 { useGetUsenetDownloads } from '../../tools/hooks/api';
|
import { useGetUsenetDownloads } from '../../hooks/api';
|
||||||
import { humanFileSize } from '../../tools/humanFileSize';
|
import { humanFileSize } from '../../tools/humanFileSize';
|
||||||
|
|
||||||
dayjs.extend(duration);
|
dayjs.extend(duration);
|
||||||
|
|||||||
Reference in New Issue
Block a user