mirror of
https://github.com/karl0ss/homepage.git
synced 2025-04-29 12:03:41 +01:00
Chore: add organize imports to pre-commit (#5104)
This commit is contained in:
parent
954ab54493
commit
eda06965fa
@ -9,11 +9,14 @@ repos:
|
|||||||
- id: check-yaml
|
- id: check-yaml
|
||||||
exclude: "(^mkdocs\\.yml$)"
|
exclude: "(^mkdocs\\.yml$)"
|
||||||
- id: check-added-large-files
|
- id: check-added-large-files
|
||||||
- repo: https://github.com/pre-commit/mirrors-prettier
|
- repo: https://github.com/rbubley/mirrors-prettier
|
||||||
rev: 'v3.0.3'
|
rev: 'v3.3.3'
|
||||||
hooks:
|
hooks:
|
||||||
- id: prettier
|
- id: prettier
|
||||||
types_or:
|
types_or:
|
||||||
- javascript
|
- javascript
|
||||||
- markdown
|
- markdown
|
||||||
- jsx
|
- jsx
|
||||||
|
additional_dependencies:
|
||||||
|
- prettier@3.3.3
|
||||||
|
- 'prettier-plugin-organize-imports@4.1.0'
|
||||||
|
@ -1 +0,0 @@
|
|||||||
{}
|
|
5
.prettierrc.js
Normal file
5
.prettierrc.js
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
const config = {
|
||||||
|
plugins: [require("prettier-plugin-organize-imports")],
|
||||||
|
};
|
||||||
|
|
||||||
|
module.exports = config;
|
@ -131,8 +131,8 @@ module.exports = {
|
|||||||
? BIBIT_UNITS
|
? BIBIT_UNITS
|
||||||
: BIT_UNITS
|
: BIT_UNITS
|
||||||
: options.binary
|
: options.binary
|
||||||
? BIBYTE_UNITS
|
? BIBYTE_UNITS
|
||||||
: BYTE_UNITS;
|
: BYTE_UNITS;
|
||||||
|
|
||||||
if (value === 0) return `0 ${sizes[0]}/s`;
|
if (value === 0) return `0 ${sizes[0]}/s`;
|
||||||
|
|
||||||
|
@ -56,6 +56,7 @@
|
|||||||
"eslint-plugin-react-hooks": "^5.1.0",
|
"eslint-plugin-react-hooks": "^5.1.0",
|
||||||
"postcss": "^8.5.2",
|
"postcss": "^8.5.2",
|
||||||
"prettier": "^3.5.2",
|
"prettier": "^3.5.2",
|
||||||
|
"prettier-plugin-organize-imports": "^4.1.0",
|
||||||
"tailwind-scrollbar": "^4.0.1",
|
"tailwind-scrollbar": "^4.0.1",
|
||||||
"tailwindcss": "^4.0.9",
|
"tailwindcss": "^4.0.9",
|
||||||
"typescript": "^5.7.3"
|
"typescript": "^5.7.3"
|
||||||
|
26
pnpm-lock.yaml
generated
26
pnpm-lock.yaml
generated
@ -101,10 +101,6 @@ importers:
|
|||||||
xml-js:
|
xml-js:
|
||||||
specifier: ^1.6.11
|
specifier: ^1.6.11
|
||||||
version: 1.6.11
|
version: 1.6.11
|
||||||
optionalDependencies:
|
|
||||||
osx-temperature-sensor:
|
|
||||||
specifier: ^1.0.8
|
|
||||||
version: 1.0.8
|
|
||||||
devDependencies:
|
devDependencies:
|
||||||
'@tailwindcss/forms':
|
'@tailwindcss/forms':
|
||||||
specifier: ^0.5.10
|
specifier: ^0.5.10
|
||||||
@ -142,6 +138,9 @@ importers:
|
|||||||
prettier:
|
prettier:
|
||||||
specifier: ^3.5.2
|
specifier: ^3.5.2
|
||||||
version: 3.5.2
|
version: 3.5.2
|
||||||
|
prettier-plugin-organize-imports:
|
||||||
|
specifier: ^4.1.0
|
||||||
|
version: 4.1.0(prettier@3.5.2)(typescript@5.7.3)
|
||||||
tailwind-scrollbar:
|
tailwind-scrollbar:
|
||||||
specifier: ^4.0.1
|
specifier: ^4.0.1
|
||||||
version: 4.0.1(react@18.3.1)(tailwindcss@4.0.9)
|
version: 4.0.1(react@18.3.1)(tailwindcss@4.0.9)
|
||||||
@ -151,6 +150,10 @@ importers:
|
|||||||
typescript:
|
typescript:
|
||||||
specifier: ^5.7.3
|
specifier: ^5.7.3
|
||||||
version: 5.7.3
|
version: 5.7.3
|
||||||
|
optionalDependencies:
|
||||||
|
osx-temperature-sensor:
|
||||||
|
specifier: ^1.0.8
|
||||||
|
version: 1.0.8
|
||||||
|
|
||||||
packages:
|
packages:
|
||||||
|
|
||||||
@ -2144,6 +2147,16 @@ packages:
|
|||||||
resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==}
|
resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==}
|
||||||
engines: {node: '>=6.0.0'}
|
engines: {node: '>=6.0.0'}
|
||||||
|
|
||||||
|
prettier-plugin-organize-imports@4.1.0:
|
||||||
|
resolution: {integrity: sha512-5aWRdCgv645xaa58X8lOxzZoiHAldAPChljr/MT0crXVOWTZ+Svl4hIWlz+niYSlO6ikE5UXkN1JrRvIP2ut0A==}
|
||||||
|
peerDependencies:
|
||||||
|
prettier: '>=2.0'
|
||||||
|
typescript: '>=2.9'
|
||||||
|
vue-tsc: ^2.1.0
|
||||||
|
peerDependenciesMeta:
|
||||||
|
vue-tsc:
|
||||||
|
optional: true
|
||||||
|
|
||||||
prettier@3.5.2:
|
prettier@3.5.2:
|
||||||
resolution: {integrity: sha512-lc6npv5PH7hVqozBR7lkBNOGXV9vMwROAPlumdBkX0wTbbzPu/U1hk5yL8p2pt4Xoc+2mkT8t/sow2YrV/M5qg==}
|
resolution: {integrity: sha512-lc6npv5PH7hVqozBR7lkBNOGXV9vMwROAPlumdBkX0wTbbzPu/U1hk5yL8p2pt4Xoc+2mkT8t/sow2YrV/M5qg==}
|
||||||
engines: {node: '>=14'}
|
engines: {node: '>=14'}
|
||||||
@ -4883,6 +4896,11 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
fast-diff: 1.3.0
|
fast-diff: 1.3.0
|
||||||
|
|
||||||
|
prettier-plugin-organize-imports@4.1.0(prettier@3.5.2)(typescript@5.7.3):
|
||||||
|
dependencies:
|
||||||
|
prettier: 3.5.2
|
||||||
|
typescript: 5.7.3
|
||||||
|
|
||||||
prettier@3.5.2: {}
|
prettier@3.5.2: {}
|
||||||
|
|
||||||
pretty-bytes@6.1.1: {}
|
pretty-bytes@6.1.1: {}
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
import { useRef, useEffect } from "react";
|
|
||||||
import classNames from "classnames";
|
|
||||||
import { Disclosure, Transition } from "@headlessui/react";
|
import { Disclosure, Transition } from "@headlessui/react";
|
||||||
import { MdKeyboardArrowDown } from "react-icons/md";
|
import classNames from "classnames";
|
||||||
import ErrorBoundary from "components/errorboundry";
|
|
||||||
import List from "components/bookmarks/list";
|
import List from "components/bookmarks/list";
|
||||||
|
import ErrorBoundary from "components/errorboundry";
|
||||||
import ResolvedIcon from "components/resolvedicon";
|
import ResolvedIcon from "components/resolvedicon";
|
||||||
|
import { useEffect, useRef } from "react";
|
||||||
|
import { MdKeyboardArrowDown } from "react-icons/md";
|
||||||
|
|
||||||
export default function BookmarksGroup({
|
export default function BookmarksGroup({
|
||||||
bookmarks,
|
bookmarks,
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import { useContext } from "react";
|
|
||||||
import classNames from "classnames";
|
import classNames from "classnames";
|
||||||
import { SettingsContext } from "utils/contexts/settings";
|
|
||||||
import ResolvedIcon from "components/resolvedicon";
|
import ResolvedIcon from "components/resolvedicon";
|
||||||
|
import { useContext } from "react";
|
||||||
|
import { SettingsContext } from "utils/contexts/settings";
|
||||||
|
|
||||||
export default function Item({ bookmark, iconOnly = false }) {
|
export default function Item({ bookmark, iconOnly = false }) {
|
||||||
const description = bookmark.description ?? new URL(bookmark.href).hostname;
|
const description = bookmark.description ?? new URL(bookmark.href).hostname;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/* eslint-disable @next/next/no-img-element */
|
/* eslint-disable @next/next/no-img-element */
|
||||||
/* eslint-disable jsx-a11y/alt-text */
|
/* eslint-disable jsx-a11y/alt-text */
|
||||||
import { useRef, useEffect, useContext } from "react";
|
import { useContext, useEffect, useRef } from "react";
|
||||||
import { ColorContext } from "utils/contexts/color";
|
import { ColorContext } from "utils/contexts/color";
|
||||||
|
|
||||||
import themes from "utils/styles/themes";
|
import themes from "utils/styles/themes";
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { useTranslation } from "react-i18next";
|
|
||||||
import { useEffect, useState, useRef, useCallback, useContext } from "react";
|
|
||||||
import classNames from "classnames";
|
import classNames from "classnames";
|
||||||
|
import { useCallback, useContext, useEffect, useRef, useState } from "react";
|
||||||
|
import { useTranslation } from "react-i18next";
|
||||||
import useSWR from "swr";
|
import useSWR from "swr";
|
||||||
import { SettingsContext } from "utils/contexts/settings";
|
import { SettingsContext } from "utils/contexts/settings";
|
||||||
|
|
||||||
@ -53,7 +53,7 @@ export default function QuickLaunch({ servicesAndBookmarks, searchString, setSea
|
|||||||
const result = results[currentItemIndex];
|
const result = results[currentItemIndex];
|
||||||
window.open(
|
window.open(
|
||||||
result.href,
|
result.href,
|
||||||
newWindow ? "_blank" : result.target ?? searchProvider?.target ?? settings.target ?? "_blank",
|
newWindow ? "_blank" : (result.target ?? searchProvider?.target ?? settings.target ?? "_blank"),
|
||||||
"noreferrer",
|
"noreferrer",
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import { useContext } from "react";
|
|
||||||
import Image from "next/image";
|
import Image from "next/image";
|
||||||
|
import { useContext } from "react";
|
||||||
import { SettingsContext } from "utils/contexts/settings";
|
import { SettingsContext } from "utils/contexts/settings";
|
||||||
import { ThemeContext } from "utils/contexts/theme";
|
import { ThemeContext } from "utils/contexts/theme";
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import { Fragment } from "react";
|
|
||||||
import { Menu, Transition } from "@headlessui/react";
|
import { Menu, Transition } from "@headlessui/react";
|
||||||
import { BiCog } from "react-icons/bi";
|
|
||||||
import classNames from "classnames";
|
import classNames from "classnames";
|
||||||
|
import { Fragment } from "react";
|
||||||
|
import { BiCog } from "react-icons/bi";
|
||||||
|
|
||||||
export default function Dropdown({ options, value, setValue }) {
|
export default function Dropdown({ options, value, setValue }) {
|
||||||
return (
|
return (
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
import { useRef, useEffect } from "react";
|
|
||||||
import classNames from "classnames";
|
|
||||||
import { Disclosure, Transition } from "@headlessui/react";
|
import { Disclosure, Transition } from "@headlessui/react";
|
||||||
import { MdKeyboardArrowDown } from "react-icons/md";
|
import classNames from "classnames";
|
||||||
import List from "components/services/list";
|
|
||||||
import ResolvedIcon from "components/resolvedicon";
|
import ResolvedIcon from "components/resolvedicon";
|
||||||
|
import List from "components/services/list";
|
||||||
|
import { useEffect, useRef } from "react";
|
||||||
|
import { MdKeyboardArrowDown } from "react-icons/md";
|
||||||
|
|
||||||
import { columnMap } from "../../utils/layout/columns";
|
import { columnMap } from "../../utils/layout/columns";
|
||||||
|
|
||||||
|
@ -1,15 +1,15 @@
|
|||||||
import classNames from "classnames";
|
import classNames from "classnames";
|
||||||
|
import ResolvedIcon from "components/resolvedicon";
|
||||||
import { useContext, useState } from "react";
|
import { useContext, useState } from "react";
|
||||||
|
import { SettingsContext } from "utils/contexts/settings";
|
||||||
import Docker from "widgets/docker/component";
|
import Docker from "widgets/docker/component";
|
||||||
import Kubernetes from "widgets/kubernetes/component";
|
import Kubernetes from "widgets/kubernetes/component";
|
||||||
import { SettingsContext } from "utils/contexts/settings";
|
|
||||||
import ResolvedIcon from "components/resolvedicon";
|
|
||||||
|
|
||||||
import Status from "./status";
|
import KubernetesStatus from "./kubernetes-status";
|
||||||
import Widget from "./widget";
|
|
||||||
import Ping from "./ping";
|
import Ping from "./ping";
|
||||||
import SiteMonitor from "./site-monitor";
|
import SiteMonitor from "./site-monitor";
|
||||||
import KubernetesStatus from "./kubernetes-status";
|
import Status from "./status";
|
||||||
|
import Widget from "./widget";
|
||||||
|
|
||||||
export default function Item({ service, groupName, useEqualHeights }) {
|
export default function Item({ service, groupName, useEqualHeights }) {
|
||||||
const hasLink = service.href && service.href !== "#";
|
const hasLink = service.href && service.href !== "#";
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import useSWR from "swr";
|
|
||||||
import { t } from "i18next";
|
import { t } from "i18next";
|
||||||
|
import useSWR from "swr";
|
||||||
|
|
||||||
export default function KubernetesStatus({ service, style }) {
|
export default function KubernetesStatus({ service, style }) {
|
||||||
const podSelectorString = service.podSelector !== undefined ? `podSelector=${service.podSelector}` : "";
|
const podSelectorString = service.podSelector !== undefined ? `podSelector=${service.podSelector}` : "";
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import { useTranslation } from "next-i18next";
|
|
||||||
import ErrorBoundary from "components/errorboundry";
|
import ErrorBoundary from "components/errorboundry";
|
||||||
|
import { useTranslation } from "next-i18next";
|
||||||
|
|
||||||
import components from "widgets/components";
|
import components from "widgets/components";
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import { useTranslation } from "next-i18next";
|
|
||||||
import classNames from "classnames";
|
import classNames from "classnames";
|
||||||
|
import { useTranslation } from "next-i18next";
|
||||||
|
|
||||||
export default function Block({ value, label }) {
|
export default function Block({ value, label }) {
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import { useContext } from "react";
|
|
||||||
import classNames from "classnames";
|
import classNames from "classnames";
|
||||||
|
import { useContext } from "react";
|
||||||
import { TabContext } from "utils/contexts/tab";
|
import { TabContext } from "utils/contexts/tab";
|
||||||
|
|
||||||
function slugify(tabName) {
|
function slugify(tabName) {
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import { useContext, Fragment } from "react";
|
|
||||||
import { IoColorPalette } from "react-icons/io5";
|
|
||||||
import { Popover, Transition } from "@headlessui/react";
|
import { Popover, Transition } from "@headlessui/react";
|
||||||
import classNames from "classnames";
|
import classNames from "classnames";
|
||||||
|
import { Fragment, useContext } from "react";
|
||||||
|
import { IoColorPalette } from "react-icons/io5";
|
||||||
import { ColorContext } from "utils/contexts/color";
|
import { ColorContext } from "utils/contexts/color";
|
||||||
|
|
||||||
const colors = [
|
const colors = [
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
|
import { compareVersions, validate } from "compare-versions";
|
||||||
import cache from "memory-cache";
|
import cache from "memory-cache";
|
||||||
import { useTranslation } from "next-i18next";
|
import { useTranslation } from "next-i18next";
|
||||||
import useSWR from "swr";
|
|
||||||
import { compareVersions, validate } from "compare-versions";
|
|
||||||
import { MdNewReleases } from "react-icons/md";
|
import { MdNewReleases } from "react-icons/md";
|
||||||
|
import useSWR from "swr";
|
||||||
|
|
||||||
const LATEST_RELEASE_CACHE_KEY = "latestRelease";
|
const LATEST_RELEASE_CACHE_KEY = "latestRelease";
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import { useState, useEffect } from "react";
|
|
||||||
import { useTranslation } from "next-i18next";
|
import { useTranslation } from "next-i18next";
|
||||||
|
import { useEffect, useState } from "react";
|
||||||
|
|
||||||
import Container from "../widget/container";
|
import Container from "../widget/container";
|
||||||
import Raw from "../widget/raw";
|
import Raw from "../widget/raw";
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
import useSWR from "swr";
|
import classNames from "classnames";
|
||||||
|
import { useTranslation } from "next-i18next";
|
||||||
import { useContext } from "react";
|
import { useContext } from "react";
|
||||||
import { FaMemory, FaRegClock, FaThermometerHalf } from "react-icons/fa";
|
import { FaMemory, FaRegClock, FaThermometerHalf } from "react-icons/fa";
|
||||||
import { FiCpu, FiHardDrive } from "react-icons/fi";
|
import { FiCpu, FiHardDrive } from "react-icons/fi";
|
||||||
import { useTranslation } from "next-i18next";
|
import useSWR from "swr";
|
||||||
import classNames from "classnames";
|
|
||||||
import { SettingsContext } from "utils/contexts/settings";
|
import { SettingsContext } from "utils/contexts/settings";
|
||||||
|
|
||||||
import Error from "../widget/error";
|
import Error from "../widget/error";
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
import useSWR from "swr";
|
|
||||||
import { useTranslation } from "next-i18next";
|
import { useTranslation } from "next-i18next";
|
||||||
|
import useSWR from "swr";
|
||||||
|
|
||||||
import Error from "../widget/error";
|
|
||||||
import Container from "../widget/container";
|
import Container from "../widget/container";
|
||||||
|
import Error from "../widget/error";
|
||||||
import Raw from "../widget/raw";
|
import Raw from "../widget/raw";
|
||||||
|
|
||||||
import Node from "./node";
|
import Node from "./node";
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
|
import { useTranslation } from "next-i18next";
|
||||||
import { FaMemory } from "react-icons/fa";
|
import { FaMemory } from "react-icons/fa";
|
||||||
import { FiAlertTriangle, FiCpu, FiServer } from "react-icons/fi";
|
import { FiAlertTriangle, FiCpu, FiServer } from "react-icons/fi";
|
||||||
import { SiKubernetes } from "react-icons/si";
|
import { SiKubernetes } from "react-icons/si";
|
||||||
import { useTranslation } from "next-i18next";
|
|
||||||
|
|
||||||
import UsageBar from "../resources/usage-bar";
|
import UsageBar from "../resources/usage-bar";
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import useSWR from "swr";
|
import useSWR from "swr";
|
||||||
|
|
||||||
import Error from "../widget/error";
|
|
||||||
import Container from "../widget/container";
|
import Container from "../widget/container";
|
||||||
|
import Error from "../widget/error";
|
||||||
import Raw from "../widget/raw";
|
import Raw from "../widget/raw";
|
||||||
|
|
||||||
import Node from "./node";
|
import Node from "./node";
|
||||||
|
@ -1,16 +1,16 @@
|
|||||||
import useSWR from "swr";
|
|
||||||
import { useState } from "react";
|
|
||||||
import { WiCloudDown } from "react-icons/wi";
|
|
||||||
import { MdLocationDisabled, MdLocationSearching } from "react-icons/md";
|
|
||||||
import { useTranslation } from "next-i18next";
|
import { useTranslation } from "next-i18next";
|
||||||
|
import { useState } from "react";
|
||||||
|
import { MdLocationDisabled, MdLocationSearching } from "react-icons/md";
|
||||||
|
import { WiCloudDown } from "react-icons/wi";
|
||||||
|
import useSWR from "swr";
|
||||||
|
|
||||||
import Error from "../widget/error";
|
import mapIcon from "../../../utils/weather/openmeteo-condition-map";
|
||||||
import Container from "../widget/container";
|
import Container from "../widget/container";
|
||||||
import ContainerButton from "../widget/container_button";
|
import ContainerButton from "../widget/container_button";
|
||||||
import WidgetIcon from "../widget/widget_icon";
|
import Error from "../widget/error";
|
||||||
import PrimaryText from "../widget/primary_text";
|
import PrimaryText from "../widget/primary_text";
|
||||||
import SecondaryText from "../widget/secondary_text";
|
import SecondaryText from "../widget/secondary_text";
|
||||||
import mapIcon from "../../../utils/weather/openmeteo-condition-map";
|
import WidgetIcon from "../widget/widget_icon";
|
||||||
|
|
||||||
function Widget({ options }) {
|
function Widget({ options }) {
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
|
@ -1,16 +1,16 @@
|
|||||||
import useSWR from "swr";
|
|
||||||
import { useState } from "react";
|
|
||||||
import { WiCloudDown } from "react-icons/wi";
|
|
||||||
import { MdLocationDisabled, MdLocationSearching } from "react-icons/md";
|
|
||||||
import { useTranslation } from "next-i18next";
|
import { useTranslation } from "next-i18next";
|
||||||
|
import { useState } from "react";
|
||||||
|
import { MdLocationDisabled, MdLocationSearching } from "react-icons/md";
|
||||||
|
import { WiCloudDown } from "react-icons/wi";
|
||||||
|
import useSWR from "swr";
|
||||||
|
|
||||||
import Error from "../widget/error";
|
import mapIcon from "../../../utils/weather/owm-condition-map";
|
||||||
import Container from "../widget/container";
|
import Container from "../widget/container";
|
||||||
import ContainerButton from "../widget/container_button";
|
import ContainerButton from "../widget/container_button";
|
||||||
|
import Error from "../widget/error";
|
||||||
import PrimaryText from "../widget/primary_text";
|
import PrimaryText from "../widget/primary_text";
|
||||||
import SecondaryText from "../widget/secondary_text";
|
import SecondaryText from "../widget/secondary_text";
|
||||||
import WidgetIcon from "../widget/widget_icon";
|
import WidgetIcon from "../widget/widget_icon";
|
||||||
import mapIcon from "../../../utils/weather/owm-condition-map";
|
|
||||||
|
|
||||||
function Widget({ options }) {
|
function Widget({ options }) {
|
||||||
const { t, i18n } = useTranslation();
|
const { t, i18n } = useTranslation();
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
import useSWR from "swr";
|
|
||||||
import { FiCpu } from "react-icons/fi";
|
|
||||||
import { useTranslation } from "next-i18next";
|
import { useTranslation } from "next-i18next";
|
||||||
|
import { FiCpu } from "react-icons/fi";
|
||||||
|
import useSWR from "swr";
|
||||||
|
|
||||||
import Resource from "../widget/resource";
|
|
||||||
import Error from "../widget/error";
|
import Error from "../widget/error";
|
||||||
|
import Resource from "../widget/resource";
|
||||||
|
|
||||||
export default function Cpu({ expanded, refresh = 1500 }) {
|
export default function Cpu({ expanded, refresh = 1500 }) {
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
import useSWR from "swr";
|
|
||||||
import { FaThermometerHalf } from "react-icons/fa";
|
|
||||||
import { useTranslation } from "next-i18next";
|
import { useTranslation } from "next-i18next";
|
||||||
|
import { FaThermometerHalf } from "react-icons/fa";
|
||||||
|
import useSWR from "swr";
|
||||||
|
|
||||||
import Resource from "../widget/resource";
|
|
||||||
import Error from "../widget/error";
|
import Error from "../widget/error";
|
||||||
|
import Resource from "../widget/resource";
|
||||||
|
|
||||||
function convertToFahrenheit(t) {
|
function convertToFahrenheit(t) {
|
||||||
return (t * 9) / 5 + 32;
|
return (t * 9) / 5 + 32;
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
import useSWR from "swr";
|
|
||||||
import { FiHardDrive } from "react-icons/fi";
|
|
||||||
import { useTranslation } from "next-i18next";
|
import { useTranslation } from "next-i18next";
|
||||||
|
import { FiHardDrive } from "react-icons/fi";
|
||||||
|
import useSWR from "swr";
|
||||||
|
|
||||||
import Resource from "../widget/resource";
|
|
||||||
import Error from "../widget/error";
|
import Error from "../widget/error";
|
||||||
|
import Resource from "../widget/resource";
|
||||||
|
|
||||||
export default function Disk({ options, expanded, diskUnits, refresh = 1500 }) {
|
export default function Disk({ options, expanded, diskUnits, refresh = 1500 }) {
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
import useSWR from "swr";
|
|
||||||
import { FaMemory } from "react-icons/fa";
|
|
||||||
import { useTranslation } from "next-i18next";
|
import { useTranslation } from "next-i18next";
|
||||||
|
import { FaMemory } from "react-icons/fa";
|
||||||
|
import useSWR from "swr";
|
||||||
|
|
||||||
import Resource from "../widget/resource";
|
|
||||||
import Error from "../widget/error";
|
import Error from "../widget/error";
|
||||||
|
import Resource from "../widget/resource";
|
||||||
|
|
||||||
export default function Memory({ expanded, refresh = 1500 }) {
|
export default function Memory({ expanded, refresh = 1500 }) {
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
import useSWR from "swr";
|
|
||||||
import { FaNetworkWired } from "react-icons/fa";
|
|
||||||
import { useTranslation } from "next-i18next";
|
import { useTranslation } from "next-i18next";
|
||||||
|
import { FaNetworkWired } from "react-icons/fa";
|
||||||
|
import useSWR from "swr";
|
||||||
|
|
||||||
import Resource from "../widget/resource";
|
|
||||||
import Error from "../widget/error";
|
import Error from "../widget/error";
|
||||||
|
import Resource from "../widget/resource";
|
||||||
|
|
||||||
export default function Network({ options, refresh = 1500 }) {
|
export default function Network({ options, refresh = 1500 }) {
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
import Container from "../widget/container";
|
import Container from "../widget/container";
|
||||||
import Raw from "../widget/raw";
|
import Raw from "../widget/raw";
|
||||||
|
|
||||||
import Disk from "./disk";
|
|
||||||
import Cpu from "./cpu";
|
import Cpu from "./cpu";
|
||||||
import Memory from "./memory";
|
|
||||||
import CpuTemp from "./cputemp";
|
import CpuTemp from "./cputemp";
|
||||||
import Uptime from "./uptime";
|
import Disk from "./disk";
|
||||||
|
import Memory from "./memory";
|
||||||
import Network from "./network";
|
import Network from "./network";
|
||||||
|
import Uptime from "./uptime";
|
||||||
|
|
||||||
export default function Resources({ options }) {
|
export default function Resources({ options }) {
|
||||||
const { expanded, units, diskUnits, tempmin, tempmax } = options;
|
const { expanded, units, diskUnits, tempmin, tempmax } = options;
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
import useSWR from "swr";
|
|
||||||
import { FaRegClock } from "react-icons/fa";
|
|
||||||
import { useTranslation } from "next-i18next";
|
import { useTranslation } from "next-i18next";
|
||||||
|
import { FaRegClock } from "react-icons/fa";
|
||||||
|
import useSWR from "swr";
|
||||||
|
|
||||||
import Resource from "../widget/resource";
|
|
||||||
import Error from "../widget/error";
|
import Error from "../widget/error";
|
||||||
|
import Resource from "../widget/resource";
|
||||||
|
|
||||||
export default function Uptime({ refresh = 1500 }) {
|
export default function Uptime({ refresh = 1500 }) {
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
import { useState, useEffect, Fragment } from "react";
|
import { Combobox, Listbox, Transition } from "@headlessui/react";
|
||||||
import { useTranslation } from "next-i18next";
|
|
||||||
import { FiSearch } from "react-icons/fi";
|
|
||||||
import { SiDuckduckgo, SiGoogle, SiBaidu, SiBrave } from "react-icons/si";
|
|
||||||
import { BiLogoBing } from "react-icons/bi";
|
|
||||||
import { Listbox, Transition, Combobox } from "@headlessui/react";
|
|
||||||
import classNames from "classnames";
|
import classNames from "classnames";
|
||||||
|
import { useTranslation } from "next-i18next";
|
||||||
|
import { Fragment, useEffect, useState } from "react";
|
||||||
|
import { BiLogoBing } from "react-icons/bi";
|
||||||
|
import { FiSearch } from "react-icons/fi";
|
||||||
|
import { SiBaidu, SiBrave, SiDuckduckgo, SiGoogle } from "react-icons/si";
|
||||||
|
|
||||||
import ContainerForm from "../widget/container_form";
|
import ContainerForm from "../widget/container_form";
|
||||||
import Raw from "../widget/raw";
|
import Raw from "../widget/raw";
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
import useSWR from "swr";
|
|
||||||
import { useState } from "react";
|
|
||||||
import { useTranslation } from "next-i18next";
|
import { useTranslation } from "next-i18next";
|
||||||
|
import { useState } from "react";
|
||||||
import { FaChartLine } from "react-icons/fa6";
|
import { FaChartLine } from "react-icons/fa6";
|
||||||
|
import useSWR from "swr";
|
||||||
|
|
||||||
import Error from "../widget/error";
|
|
||||||
import Container from "../widget/container";
|
import Container from "../widget/container";
|
||||||
|
import Error from "../widget/error";
|
||||||
import PrimaryText from "../widget/primary_text";
|
import PrimaryText from "../widget/primary_text";
|
||||||
import WidgetIcon from "../widget/widget_icon";
|
|
||||||
import Raw from "../widget/raw";
|
import Raw from "../widget/raw";
|
||||||
|
import WidgetIcon from "../widget/widget_icon";
|
||||||
|
|
||||||
export default function Widget({ options }) {
|
export default function Widget({ options }) {
|
||||||
const { t, i18n } = useTranslation();
|
const { t, i18n } = useTranslation();
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
import { BiError, BiWifi, BiCheckCircle, BiXCircle, BiNetworkChart } from "react-icons/bi";
|
|
||||||
import { MdSettingsEthernet } from "react-icons/md";
|
|
||||||
import { useTranslation } from "next-i18next";
|
import { useTranslation } from "next-i18next";
|
||||||
|
import { BiCheckCircle, BiError, BiNetworkChart, BiWifi, BiXCircle } from "react-icons/bi";
|
||||||
|
import { MdSettingsEthernet } from "react-icons/md";
|
||||||
import { SiUbiquiti } from "react-icons/si";
|
import { SiUbiquiti } from "react-icons/si";
|
||||||
|
|
||||||
import Error from "../widget/error";
|
|
||||||
import Container from "../widget/container";
|
import Container from "../widget/container";
|
||||||
|
import Error from "../widget/error";
|
||||||
|
import PrimaryText from "../widget/primary_text";
|
||||||
import Raw from "../widget/raw";
|
import Raw from "../widget/raw";
|
||||||
import WidgetIcon from "../widget/widget_icon";
|
import WidgetIcon from "../widget/widget_icon";
|
||||||
import PrimaryText from "../widget/primary_text";
|
|
||||||
|
|
||||||
import useWidgetAPI from "utils/proxy/use-widget-api";
|
import useWidgetAPI from "utils/proxy/use-widget-api";
|
||||||
|
|
||||||
|
@ -1,16 +1,16 @@
|
|||||||
import useSWR from "swr";
|
|
||||||
import { useState } from "react";
|
|
||||||
import { WiCloudDown } from "react-icons/wi";
|
|
||||||
import { MdLocationDisabled, MdLocationSearching } from "react-icons/md";
|
|
||||||
import { useTranslation } from "next-i18next";
|
import { useTranslation } from "next-i18next";
|
||||||
|
import { useState } from "react";
|
||||||
|
import { MdLocationDisabled, MdLocationSearching } from "react-icons/md";
|
||||||
|
import { WiCloudDown } from "react-icons/wi";
|
||||||
|
import useSWR from "swr";
|
||||||
|
|
||||||
import Error from "../widget/error";
|
import mapIcon from "../../../utils/weather/condition-map";
|
||||||
import Container from "../widget/container";
|
import Container from "../widget/container";
|
||||||
|
import ContainerButton from "../widget/container_button";
|
||||||
|
import Error from "../widget/error";
|
||||||
import PrimaryText from "../widget/primary_text";
|
import PrimaryText from "../widget/primary_text";
|
||||||
import SecondaryText from "../widget/secondary_text";
|
import SecondaryText from "../widget/secondary_text";
|
||||||
import WidgetIcon from "../widget/widget_icon";
|
import WidgetIcon from "../widget/widget_icon";
|
||||||
import ContainerButton from "../widget/container_button";
|
|
||||||
import mapIcon from "../../../utils/weather/condition-map";
|
|
||||||
|
|
||||||
function Widget({ options }) {
|
function Widget({ options }) {
|
||||||
const { t, i18n } = useTranslation();
|
const { t, i18n } = useTranslation();
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import dynamic from "next/dynamic";
|
|
||||||
import ErrorBoundary from "components/errorboundry";
|
import ErrorBoundary from "components/errorboundry";
|
||||||
|
import dynamic from "next/dynamic";
|
||||||
|
|
||||||
const widgetMappings = {
|
const widgetMappings = {
|
||||||
weatherapi: dynamic(() => import("components/widgets/weather/weather")),
|
weatherapi: dynamic(() => import("components/widgets/weather/weather")),
|
||||||
|
@ -2,10 +2,10 @@ import classNames from "classnames";
|
|||||||
import { useContext } from "react";
|
import { useContext } from "react";
|
||||||
import { SettingsContext } from "utils/contexts/settings";
|
import { SettingsContext } from "utils/contexts/settings";
|
||||||
|
|
||||||
import WidgetIcon from "./widget_icon";
|
|
||||||
import PrimaryText from "./primary_text";
|
import PrimaryText from "./primary_text";
|
||||||
import SecondaryText from "./secondary_text";
|
|
||||||
import Raw from "./raw";
|
import Raw from "./raw";
|
||||||
|
import SecondaryText from "./secondary_text";
|
||||||
|
import WidgetIcon from "./widget_icon";
|
||||||
|
|
||||||
export function getAllClasses(options, additionalClassNames = "") {
|
export function getAllClasses(options, additionalClassNames = "") {
|
||||||
if (options?.style?.header === "boxedWidgets") {
|
if (options?.style?.header === "boxedWidgets") {
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import { getAllClasses, getInnerBlock, getBottomBlock } from "./container";
|
import { getAllClasses, getBottomBlock, getInnerBlock } from "./container";
|
||||||
|
|
||||||
export default function ContainerButton({ children = [], options, additionalClassNames = "", callback }) {
|
export default function ContainerButton({ children = [], options, additionalClassNames = "", callback }) {
|
||||||
return (
|
return (
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import { getAllClasses, getInnerBlock, getBottomBlock } from "./container";
|
import { getAllClasses, getBottomBlock, getInnerBlock } from "./container";
|
||||||
|
|
||||||
export default function ContainerForm({ children = [], options, additionalClassNames = "", callback }) {
|
export default function ContainerForm({ children = [], options, additionalClassNames = "", callback }) {
|
||||||
return (
|
return (
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import { getAllClasses, getInnerBlock, getBottomBlock } from "./container";
|
import { getAllClasses, getBottomBlock, getInnerBlock } from "./container";
|
||||||
|
|
||||||
export default function ContainerLink({ children = [], options, additionalClassNames = "", target }) {
|
export default function ContainerLink({ children = [], options, additionalClassNames = "", target }) {
|
||||||
return (
|
return (
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
import classNames from "classnames";
|
import classNames from "classnames";
|
||||||
|
|
||||||
import ContainerLink from "./container_link";
|
import ContainerLink from "./container_link";
|
||||||
import Resource from "./resource";
|
|
||||||
import Raw from "./raw";
|
import Raw from "./raw";
|
||||||
|
import Resource from "./resource";
|
||||||
import WidgetLabel from "./widget_label";
|
import WidgetLabel from "./widget_label";
|
||||||
|
|
||||||
export default function Resources({ options, children, target, additionalClassNames }) {
|
export default function Resources({ options, children, target, additionalClassNames }) {
|
||||||
|
@ -1,14 +1,14 @@
|
|||||||
/* eslint-disable react/jsx-props-no-spreading */
|
/* eslint-disable react/jsx-props-no-spreading */
|
||||||
import { SWRConfig } from "swr";
|
|
||||||
import { appWithTranslation } from "next-i18next";
|
import { appWithTranslation } from "next-i18next";
|
||||||
import Head from "next/head";
|
import Head from "next/head";
|
||||||
import "styles/globals.css";
|
import "styles/globals.css";
|
||||||
import "styles/theme.css";
|
|
||||||
import "styles/manrope.css";
|
import "styles/manrope.css";
|
||||||
|
import "styles/theme.css";
|
||||||
|
import { SWRConfig } from "swr";
|
||||||
import { ColorProvider } from "utils/contexts/color";
|
import { ColorProvider } from "utils/contexts/color";
|
||||||
import { ThemeProvider } from "utils/contexts/theme";
|
|
||||||
import { SettingsProvider } from "utils/contexts/settings";
|
import { SettingsProvider } from "utils/contexts/settings";
|
||||||
import { TabProvider } from "utils/contexts/tab";
|
import { TabProvider } from "utils/contexts/tab";
|
||||||
|
import { ThemeProvider } from "utils/contexts/theme";
|
||||||
|
|
||||||
import nextI18nextConfig from "../../next-i18next.config";
|
import nextI18nextConfig from "../../next-i18next.config";
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import { Html, Head, Main, NextScript } from "next/document";
|
import { Head, Html, Main, NextScript } from "next/document";
|
||||||
|
|
||||||
export default function Document() {
|
export default function Document() {
|
||||||
return (
|
return (
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import path from "path";
|
|
||||||
import fs from "fs";
|
import fs from "fs";
|
||||||
|
import path from "path";
|
||||||
|
|
||||||
import { CONF_DIR } from "utils/config/config";
|
import { CONF_DIR } from "utils/config/config";
|
||||||
import createLogger from "utils/logger";
|
import createLogger from "utils/logger";
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { join } from "path";
|
|
||||||
import { createHash } from "crypto";
|
import { createHash } from "crypto";
|
||||||
import { readFileSync } from "fs";
|
import { readFileSync } from "fs";
|
||||||
|
import { join } from "path";
|
||||||
|
|
||||||
import checkAndCopyConfig, { CONF_DIR } from "utils/config/config";
|
import checkAndCopyConfig, { CONF_DIR } from "utils/config/config";
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import { cachedRequest } from "utils/proxy/http";
|
|
||||||
import createLogger from "utils/logger";
|
import createLogger from "utils/logger";
|
||||||
|
import { cachedRequest } from "utils/proxy/http";
|
||||||
|
|
||||||
const logger = createLogger("releases");
|
const logger = createLogger("releases");
|
||||||
|
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
import { searchProviders } from "components/widgets/search/search";
|
import { searchProviders } from "components/widgets/search/search";
|
||||||
|
|
||||||
import { getSettings } from "utils/config/config";
|
import { getSettings } from "utils/config/config";
|
||||||
import { cachedRequest } from "utils/proxy/http";
|
|
||||||
import { widgetsFromConfig } from "utils/config/widget-helpers";
|
import { widgetsFromConfig } from "utils/config/widget-helpers";
|
||||||
|
import { cachedRequest } from "utils/proxy/http";
|
||||||
|
|
||||||
export default async function handler(req, res) {
|
export default async function handler(req, res) {
|
||||||
const { query, providerName } = req.query;
|
const { query, providerName } = req.query;
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
import { formatApiCall } from "utils/proxy/api-helpers";
|
|
||||||
import createLogger from "utils/logger";
|
|
||||||
import genericProxyHandler from "utils/proxy/handlers/generic";
|
|
||||||
import widgets from "widgets/widgets";
|
|
||||||
import calendarProxyHandler from "widgets/calendar/proxy";
|
|
||||||
import getServiceWidget from "utils/config/service-helpers";
|
import getServiceWidget from "utils/config/service-helpers";
|
||||||
|
import createLogger from "utils/logger";
|
||||||
|
import { formatApiCall } from "utils/proxy/api-helpers";
|
||||||
|
import genericProxyHandler from "utils/proxy/handlers/generic";
|
||||||
|
import calendarProxyHandler from "widgets/calendar/proxy";
|
||||||
|
import widgets from "widgets/widgets";
|
||||||
|
|
||||||
const logger = createLogger("servicesProxy");
|
const logger = createLogger("servicesProxy");
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { httpProxy } from "utils/proxy/http";
|
|
||||||
import createLogger from "utils/logger";
|
|
||||||
import { getPrivateWidgetOptions } from "utils/config/widget-helpers";
|
import { getPrivateWidgetOptions } from "utils/config/widget-helpers";
|
||||||
|
import createLogger from "utils/logger";
|
||||||
|
import { httpProxy } from "utils/proxy/http";
|
||||||
|
|
||||||
const logger = createLogger("glances");
|
const logger = createLogger("glances");
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { httpProxy } from "../../../utils/proxy/http";
|
|
||||||
import createLogger from "../../../utils/logger";
|
|
||||||
import { getSettings } from "../../../utils/config/config";
|
import { getSettings } from "../../../utils/config/config";
|
||||||
|
import createLogger from "../../../utils/logger";
|
||||||
|
import { httpProxy } from "../../../utils/proxy/http";
|
||||||
|
|
||||||
const logger = createLogger("longhorn");
|
const logger = createLogger("longhorn");
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { cachedRequest } from "utils/proxy/http";
|
|
||||||
import { getSettings } from "utils/config/config";
|
import { getSettings } from "utils/config/config";
|
||||||
import { getPrivateWidgetOptions } from "utils/config/widget-helpers";
|
import { getPrivateWidgetOptions } from "utils/config/widget-helpers";
|
||||||
|
import { cachedRequest } from "utils/proxy/http";
|
||||||
|
|
||||||
export default async function handler(req, res) {
|
export default async function handler(req, res) {
|
||||||
const { latitude, longitude, units, provider, cache, lang, index } = req.query;
|
const { latitude, longitude, units, provider, cache, lang, index } = req.query;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { cachedRequest } from "utils/proxy/http";
|
|
||||||
import { getSettings } from "utils/config/config";
|
import { getSettings } from "utils/config/config";
|
||||||
import createLogger from "utils/logger";
|
import createLogger from "utils/logger";
|
||||||
|
import { cachedRequest } from "utils/proxy/http";
|
||||||
|
|
||||||
const logger = createLogger("stocks");
|
const logger = createLogger("stocks");
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { cachedRequest } from "utils/proxy/http";
|
|
||||||
import { getSettings } from "utils/config/config";
|
import { getSettings } from "utils/config/config";
|
||||||
import { getPrivateWidgetOptions } from "utils/config/widget-helpers";
|
import { getPrivateWidgetOptions } from "utils/config/widget-helpers";
|
||||||
|
import { cachedRequest } from "utils/proxy/http";
|
||||||
|
|
||||||
export default async function handler(req, res) {
|
export default async function handler(req, res) {
|
||||||
const { latitude, longitude, provider, cache, lang, index } = req.query;
|
const { latitude, longitude, provider, cache, lang, index } = req.query;
|
||||||
|
@ -1,31 +1,31 @@
|
|||||||
/* eslint-disable react/no-array-index-key */
|
/* eslint-disable react/no-array-index-key */
|
||||||
import useSWR, { SWRConfig } from "swr";
|
|
||||||
import Head from "next/head";
|
|
||||||
import Script from "next/script";
|
|
||||||
import dynamic from "next/dynamic";
|
|
||||||
import classNames from "classnames";
|
import classNames from "classnames";
|
||||||
import { useTranslation } from "next-i18next";
|
|
||||||
import { useEffect, useContext, useState, useMemo } from "react";
|
|
||||||
import { BiError } from "react-icons/bi";
|
|
||||||
import { serverSideTranslations } from "next-i18next/serverSideTranslations";
|
|
||||||
import { useRouter } from "next/router";
|
|
||||||
import Tab, { slugifyAndEncode } from "components/tab";
|
|
||||||
import ServicesGroup from "components/services/group";
|
|
||||||
import BookmarksGroup from "components/bookmarks/group";
|
import BookmarksGroup from "components/bookmarks/group";
|
||||||
import Widget from "components/widgets/widget";
|
|
||||||
import Revalidate from "components/toggles/revalidate";
|
|
||||||
import { ColorContext } from "utils/contexts/color";
|
|
||||||
import { ThemeContext } from "utils/contexts/theme";
|
|
||||||
import { SettingsContext } from "utils/contexts/settings";
|
|
||||||
import { TabContext } from "utils/contexts/tab";
|
|
||||||
import ErrorBoundary from "components/errorboundry";
|
import ErrorBoundary from "components/errorboundry";
|
||||||
import QuickLaunch from "components/quicklaunch";
|
import QuickLaunch from "components/quicklaunch";
|
||||||
|
import ServicesGroup from "components/services/group";
|
||||||
|
import Tab, { slugifyAndEncode } from "components/tab";
|
||||||
|
import Revalidate from "components/toggles/revalidate";
|
||||||
|
import Widget from "components/widgets/widget";
|
||||||
|
import { useTranslation } from "next-i18next";
|
||||||
|
import { serverSideTranslations } from "next-i18next/serverSideTranslations";
|
||||||
|
import dynamic from "next/dynamic";
|
||||||
|
import Head from "next/head";
|
||||||
|
import { useRouter } from "next/router";
|
||||||
|
import Script from "next/script";
|
||||||
|
import { useContext, useEffect, useMemo, useState } from "react";
|
||||||
|
import { BiError } from "react-icons/bi";
|
||||||
|
import useSWR, { SWRConfig } from "swr";
|
||||||
|
import { ColorContext } from "utils/contexts/color";
|
||||||
|
import { SettingsContext } from "utils/contexts/settings";
|
||||||
|
import { TabContext } from "utils/contexts/tab";
|
||||||
|
import { ThemeContext } from "utils/contexts/theme";
|
||||||
|
|
||||||
import { bookmarksResponse, servicesResponse, widgetsResponse } from "utils/config/api-response";
|
import { bookmarksResponse, servicesResponse, widgetsResponse } from "utils/config/api-response";
|
||||||
import themes from "utils/styles/themes";
|
|
||||||
import { getSettings } from "utils/config/config";
|
import { getSettings } from "utils/config/config";
|
||||||
import useWindowFocus from "utils/hooks/window-focus";
|
import useWindowFocus from "utils/hooks/window-focus";
|
||||||
import createLogger from "utils/logger";
|
import createLogger from "utils/logger";
|
||||||
|
import themes from "utils/styles/themes";
|
||||||
|
|
||||||
const ThemeToggle = dynamic(() => import("components/toggles/theme"), {
|
const ThemeToggle = dynamic(() => import("components/toggles/theme"), {
|
||||||
ssr: false,
|
ssr: false,
|
||||||
|
@ -4,13 +4,13 @@ import path from "path";
|
|||||||
|
|
||||||
import yaml from "js-yaml";
|
import yaml from "js-yaml";
|
||||||
|
|
||||||
import checkAndCopyConfig, { getSettings, substituteEnvironmentVars, CONF_DIR } from "utils/config/config";
|
import checkAndCopyConfig, { CONF_DIR, getSettings, substituteEnvironmentVars } from "utils/config/config";
|
||||||
import {
|
import {
|
||||||
|
cleanServiceGroups,
|
||||||
|
findGroupByName,
|
||||||
servicesFromConfig,
|
servicesFromConfig,
|
||||||
servicesFromDocker,
|
servicesFromDocker,
|
||||||
cleanServiceGroups,
|
|
||||||
servicesFromKubernetes,
|
servicesFromKubernetes,
|
||||||
findGroupByName,
|
|
||||||
} from "utils/config/service-helpers";
|
} from "utils/config/service-helpers";
|
||||||
import { cleanWidgetGroups, widgetsFromConfig } from "utils/config/widget-helpers";
|
import { cleanWidgetGroups, widgetsFromConfig } from "utils/config/widget-helpers";
|
||||||
|
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
/* eslint-disable no-console */
|
/* eslint-disable no-console */
|
||||||
import { join } from "path";
|
|
||||||
import { copyFileSync, existsSync, mkdirSync, readFileSync } from "fs";
|
import { copyFileSync, existsSync, mkdirSync, readFileSync } from "fs";
|
||||||
|
import { join } from "path";
|
||||||
|
|
||||||
import cache from "memory-cache";
|
|
||||||
import yaml from "js-yaml";
|
import yaml from "js-yaml";
|
||||||
|
import cache from "memory-cache";
|
||||||
|
|
||||||
const cacheKey = "homepageEnvironmentVariables";
|
const cacheKey = "homepageEnvironmentVariables";
|
||||||
const homepageVarPrefix = "HOMEPAGE_VAR_";
|
const homepageVarPrefix = "HOMEPAGE_VAR_";
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import path from "path";
|
|
||||||
import { readFileSync } from "fs";
|
import { readFileSync } from "fs";
|
||||||
|
import path from "path";
|
||||||
|
|
||||||
import yaml from "js-yaml";
|
import yaml from "js-yaml";
|
||||||
|
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
import path from "path";
|
|
||||||
import { readFileSync } from "fs";
|
import { readFileSync } from "fs";
|
||||||
|
import path from "path";
|
||||||
|
|
||||||
|
import { ApiextensionsV1Api, KubeConfig } from "@kubernetes/client-node";
|
||||||
import yaml from "js-yaml";
|
import yaml from "js-yaml";
|
||||||
import { KubeConfig, ApiextensionsV1Api } from "@kubernetes/client-node";
|
|
||||||
|
|
||||||
import checkAndCopyConfig, { CONF_DIR, substituteEnvironmentVars } from "utils/config/config";
|
import checkAndCopyConfig, { CONF_DIR, substituteEnvironmentVars } from "utils/config/config";
|
||||||
|
|
||||||
|
@ -1,15 +1,15 @@
|
|||||||
import { promises as fs } from "fs";
|
import { promises as fs } from "fs";
|
||||||
import path from "path";
|
import path from "path";
|
||||||
|
|
||||||
import yaml from "js-yaml";
|
|
||||||
import Docker from "dockerode";
|
import Docker from "dockerode";
|
||||||
|
import yaml from "js-yaml";
|
||||||
|
|
||||||
import createLogger from "utils/logger";
|
|
||||||
import checkAndCopyConfig, { CONF_DIR, getSettings, substituteEnvironmentVars } from "utils/config/config";
|
import checkAndCopyConfig, { CONF_DIR, getSettings, substituteEnvironmentVars } from "utils/config/config";
|
||||||
import getDockerArguments from "utils/config/docker";
|
import getDockerArguments from "utils/config/docker";
|
||||||
import kubernetes from "utils/kubernetes/export";
|
|
||||||
import { getKubeConfig } from "utils/config/kubernetes";
|
import { getKubeConfig } from "utils/config/kubernetes";
|
||||||
import * as shvl from "utils/config/shvl";
|
import * as shvl from "utils/config/shvl";
|
||||||
|
import kubernetes from "utils/kubernetes/export";
|
||||||
|
import createLogger from "utils/logger";
|
||||||
|
|
||||||
const logger = createLogger("service-helpers");
|
const logger = createLogger("service-helpers");
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import { createContext, useState, useEffect, useMemo } from "react";
|
import { createContext, useEffect, useMemo, useState } from "react";
|
||||||
|
|
||||||
let lastColor = false;
|
let lastColor = false;
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import { createContext, useState, useMemo } from "react";
|
import { createContext, useMemo, useState } from "react";
|
||||||
|
|
||||||
export const SettingsContext = createContext();
|
export const SettingsContext = createContext();
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import { createContext, useState, useMemo } from "react";
|
import { createContext, useMemo, useState } from "react";
|
||||||
|
|
||||||
export const TabContext = createContext();
|
export const TabContext = createContext();
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import { createContext, useState, useEffect, useMemo } from "react";
|
import { createContext, useEffect, useMemo, useState } from "react";
|
||||||
|
|
||||||
const getInitialTheme = () => {
|
const getInitialTheme = () => {
|
||||||
if (typeof window !== "undefined" && window.localStorage) {
|
if (typeof window !== "undefined" && window.localStorage) {
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import { useState, useEffect } from "react";
|
import { useEffect, useState } from "react";
|
||||||
|
|
||||||
const hasFocus = () => typeof document !== "undefined" && document.hasFocus();
|
const hasFocus = () => typeof document !== "undefined" && document.hasFocus();
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import listIngress from "utils/kubernetes/ingress-list";
|
|
||||||
import listTraefikIngress from "utils/kubernetes/traefik-list";
|
|
||||||
import listHttpRoute from "utils/kubernetes/httproute-list";
|
import listHttpRoute from "utils/kubernetes/httproute-list";
|
||||||
import { isDiscoverable, constructedServiceFromResource } from "utils/kubernetes/resource-helpers";
|
import listIngress from "utils/kubernetes/ingress-list";
|
||||||
|
import { constructedServiceFromResource, isDiscoverable } from "utils/kubernetes/resource-helpers";
|
||||||
|
import listTraefikIngress from "utils/kubernetes/traefik-list";
|
||||||
|
|
||||||
const kubernetes = {
|
const kubernetes = {
|
||||||
listIngress,
|
listIngress,
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { NetworkingV1Api } from "@kubernetes/client-node";
|
import { NetworkingV1Api } from "@kubernetes/client-node";
|
||||||
|
|
||||||
import { getKubernetes, getKubeConfig } from "utils/config/kubernetes";
|
import { getKubeConfig, getKubernetes } from "utils/config/kubernetes";
|
||||||
import createLogger from "utils/logger";
|
import createLogger from "utils/logger";
|
||||||
|
|
||||||
const logger = createLogger("ingress-list");
|
const logger = createLogger("ingress-list");
|
||||||
|
@ -1,15 +1,15 @@
|
|||||||
import { CustomObjectsApi } from "@kubernetes/client-node";
|
import { CustomObjectsApi } from "@kubernetes/client-node";
|
||||||
|
|
||||||
|
import { substituteEnvironmentVars } from "utils/config/config";
|
||||||
import {
|
import {
|
||||||
getKubeConfig,
|
|
||||||
ANNOTATION_BASE,
|
ANNOTATION_BASE,
|
||||||
ANNOTATION_WIDGET_BASE,
|
ANNOTATION_WIDGET_BASE,
|
||||||
|
getKubeConfig,
|
||||||
HTTPROUTE_API_GROUP,
|
HTTPROUTE_API_GROUP,
|
||||||
HTTPROUTE_API_VERSION,
|
HTTPROUTE_API_VERSION,
|
||||||
} from "utils/config/kubernetes";
|
} from "utils/config/kubernetes";
|
||||||
import { substituteEnvironmentVars } from "utils/config/config";
|
|
||||||
import createLogger from "utils/logger";
|
|
||||||
import * as shvl from "utils/config/shvl";
|
import * as shvl from "utils/config/shvl";
|
||||||
|
import createLogger from "utils/logger";
|
||||||
|
|
||||||
const logger = createLogger("resource-helpers");
|
const logger = createLogger("resource-helpers");
|
||||||
const kc = getKubeConfig();
|
const kc = getKubeConfig();
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { CustomObjectsApi } from "@kubernetes/client-node";
|
import { CustomObjectsApi } from "@kubernetes/client-node";
|
||||||
|
|
||||||
import { getKubernetes, getKubeConfig, checkCRD, ANNOTATION_BASE } from "utils/config/kubernetes";
|
import { ANNOTATION_BASE, checkCRD, getKubeConfig, getKubernetes } from "utils/config/kubernetes";
|
||||||
import createLogger from "utils/logger";
|
import createLogger from "utils/logger";
|
||||||
|
|
||||||
const logger = createLogger("traefik-list");
|
const logger = createLogger("traefik-list");
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
import getServiceWidget from "utils/config/service-helpers";
|
|
||||||
import { formatApiCall, sanitizeErrorURL } from "utils/proxy/api-helpers";
|
|
||||||
import validateWidgetData from "utils/proxy/validate-widget-data";
|
|
||||||
import { httpProxy } from "utils/proxy/http";
|
|
||||||
import createLogger from "utils/logger";
|
|
||||||
import { getSettings } from "utils/config/config";
|
import { getSettings } from "utils/config/config";
|
||||||
|
import getServiceWidget from "utils/config/service-helpers";
|
||||||
|
import createLogger from "utils/logger";
|
||||||
|
import { formatApiCall, sanitizeErrorURL } from "utils/proxy/api-helpers";
|
||||||
|
import { httpProxy } from "utils/proxy/http";
|
||||||
|
import validateWidgetData from "utils/proxy/validate-widget-data";
|
||||||
import widgets from "widgets/widgets";
|
import widgets from "widgets/widgets";
|
||||||
|
|
||||||
const logger = createLogger("credentialedProxyHandler");
|
const logger = createLogger("credentialedProxyHandler");
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
import getServiceWidget from "utils/config/service-helpers";
|
import getServiceWidget from "utils/config/service-helpers";
|
||||||
import { formatApiCall, sanitizeErrorURL } from "utils/proxy/api-helpers";
|
|
||||||
import validateWidgetData from "utils/proxy/validate-widget-data";
|
|
||||||
import { httpProxy } from "utils/proxy/http";
|
|
||||||
import createLogger from "utils/logger";
|
import createLogger from "utils/logger";
|
||||||
|
import { formatApiCall, sanitizeErrorURL } from "utils/proxy/api-helpers";
|
||||||
|
import { httpProxy } from "utils/proxy/http";
|
||||||
|
import validateWidgetData from "utils/proxy/validate-widget-data";
|
||||||
import widgets from "widgets/widgets";
|
import widgets from "widgets/widgets";
|
||||||
|
|
||||||
const logger = createLogger("genericProxyHandler");
|
const logger = createLogger("genericProxyHandler");
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
import { JSONRPCClient, JSONRPCErrorException } from "json-rpc-2.0";
|
import { JSONRPCClient, JSONRPCErrorException } from "json-rpc-2.0";
|
||||||
|
|
||||||
import { formatApiCall } from "utils/proxy/api-helpers";
|
|
||||||
import { httpProxy } from "utils/proxy/http";
|
|
||||||
import getServiceWidget from "utils/config/service-helpers";
|
import getServiceWidget from "utils/config/service-helpers";
|
||||||
import createLogger from "utils/logger";
|
import createLogger from "utils/logger";
|
||||||
|
import { formatApiCall } from "utils/proxy/api-helpers";
|
||||||
|
import { httpProxy } from "utils/proxy/http";
|
||||||
import widgets from "widgets/widgets";
|
import widgets from "widgets/widgets";
|
||||||
|
|
||||||
const logger = createLogger("jsonrpcProxyHandler");
|
const logger = createLogger("jsonrpcProxyHandler");
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
import cache from "memory-cache";
|
import cache from "memory-cache";
|
||||||
|
|
||||||
import getServiceWidget from "utils/config/service-helpers";
|
import getServiceWidget from "utils/config/service-helpers";
|
||||||
|
import createLogger from "utils/logger";
|
||||||
import { asJson, formatApiCall } from "utils/proxy/api-helpers";
|
import { asJson, formatApiCall } from "utils/proxy/api-helpers";
|
||||||
import { httpProxy } from "utils/proxy/http";
|
import { httpProxy } from "utils/proxy/http";
|
||||||
import createLogger from "utils/logger";
|
|
||||||
import widgets from "widgets/widgets";
|
import widgets from "widgets/widgets";
|
||||||
|
|
||||||
const INFO_ENDPOINT = "{url}/webapi/query.cgi?api=SYNO.API.Info&version=1&method=query";
|
const INFO_ENDPOINT = "{url}/webapi/query.cgi?api=SYNO.API.Info&version=1&method=query";
|
||||||
|
@ -5,8 +5,8 @@ import { createUnzip, constants as zlibConstants } from "node:zlib";
|
|||||||
import { http, https } from "follow-redirects";
|
import { http, https } from "follow-redirects";
|
||||||
import cache from "memory-cache";
|
import cache from "memory-cache";
|
||||||
|
|
||||||
import { addCookieToJar, setCookieHeader } from "./cookie-jar";
|
|
||||||
import { sanitizeErrorURL } from "./api-helpers";
|
import { sanitizeErrorURL } from "./api-helpers";
|
||||||
|
import { addCookieToJar, setCookieHeader } from "./cookie-jar";
|
||||||
|
|
||||||
import createLogger from "utils/logger";
|
import createLogger from "utils/logger";
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/* eslint-disable no-console */
|
/* eslint-disable no-console */
|
||||||
import widgets from "widgets/widgets";
|
|
||||||
import createLogger from "utils/logger";
|
import createLogger from "utils/logger";
|
||||||
|
import widgets from "widgets/widgets";
|
||||||
|
|
||||||
const logger = createLogger("validateWidgetData");
|
const logger = createLogger("validateWidgetData");
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { useTranslation } from "next-i18next";
|
|
||||||
import Container from "components/services/widget/container";
|
|
||||||
import Block from "components/services/widget/block";
|
import Block from "components/services/widget/block";
|
||||||
|
import Container from "components/services/widget/container";
|
||||||
|
import { useTranslation } from "next-i18next";
|
||||||
|
|
||||||
import useWidgetAPI from "utils/proxy/use-widget-api";
|
import useWidgetAPI from "utils/proxy/use-widget-api";
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import Container from "components/services/widget/container";
|
|
||||||
import Block from "components/services/widget/block";
|
import Block from "components/services/widget/block";
|
||||||
|
import Container from "components/services/widget/container";
|
||||||
|
|
||||||
import useWidgetAPI from "utils/proxy/use-widget-api";
|
import useWidgetAPI from "utils/proxy/use-widget-api";
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import net from "node:net";
|
|
||||||
import { Buffer } from "node:buffer";
|
import { Buffer } from "node:buffer";
|
||||||
|
import net from "node:net";
|
||||||
|
|
||||||
import getServiceWidget from "utils/config/service-helpers";
|
import getServiceWidget from "utils/config/service-helpers";
|
||||||
import createLogger from "utils/logger";
|
import createLogger from "utils/logger";
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import Container from "components/services/widget/container";
|
|
||||||
import Block from "components/services/widget/block";
|
import Block from "components/services/widget/block";
|
||||||
|
import Container from "components/services/widget/container";
|
||||||
|
|
||||||
import useWidgetAPI from "utils/proxy/use-widget-api";
|
import useWidgetAPI from "utils/proxy/use-widget-api";
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { useTranslation } from "next-i18next";
|
|
||||||
import Container from "components/services/widget/container";
|
|
||||||
import Block from "components/services/widget/block";
|
import Block from "components/services/widget/block";
|
||||||
|
import Container from "components/services/widget/container";
|
||||||
|
import { useTranslation } from "next-i18next";
|
||||||
|
|
||||||
import useWidgetAPI from "utils/proxy/use-widget-api";
|
import useWidgetAPI from "utils/proxy/use-widget-api";
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { useTranslation } from "next-i18next";
|
|
||||||
import Container from "components/services/widget/container";
|
|
||||||
import Block from "components/services/widget/block";
|
import Block from "components/services/widget/block";
|
||||||
|
import Container from "components/services/widget/container";
|
||||||
|
import { useTranslation } from "next-i18next";
|
||||||
|
|
||||||
import useWidgetAPI from "utils/proxy/use-widget-api";
|
import useWidgetAPI from "utils/proxy/use-widget-api";
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import { httpProxy } from "utils/proxy/http";
|
|
||||||
import { formatApiCall } from "utils/proxy/api-helpers";
|
|
||||||
import getServiceWidget from "utils/config/service-helpers";
|
import getServiceWidget from "utils/config/service-helpers";
|
||||||
import createLogger from "utils/logger";
|
import createLogger from "utils/logger";
|
||||||
|
import { formatApiCall } from "utils/proxy/api-helpers";
|
||||||
|
import { httpProxy } from "utils/proxy/http";
|
||||||
import widgets from "widgets/widgets";
|
import widgets from "widgets/widgets";
|
||||||
|
|
||||||
const proxyName = "audiobookshelfProxyHandler";
|
const proxyName = "audiobookshelfProxyHandler";
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { useTranslation } from "next-i18next";
|
|
||||||
import Container from "components/services/widget/container";
|
|
||||||
import Block from "components/services/widget/block";
|
import Block from "components/services/widget/block";
|
||||||
|
import Container from "components/services/widget/container";
|
||||||
|
import { useTranslation } from "next-i18next";
|
||||||
|
|
||||||
import useWidgetAPI from "utils/proxy/use-widget-api";
|
import useWidgetAPI from "utils/proxy/use-widget-api";
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { useTranslation } from "next-i18next";
|
|
||||||
import Container from "components/services/widget/container";
|
|
||||||
import Block from "components/services/widget/block";
|
import Block from "components/services/widget/block";
|
||||||
|
import Container from "components/services/widget/container";
|
||||||
|
import { useTranslation } from "next-i18next";
|
||||||
|
|
||||||
import useWidgetAPI from "utils/proxy/use-widget-api";
|
import useWidgetAPI from "utils/proxy/use-widget-api";
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { useTranslation } from "next-i18next";
|
|
||||||
import Container from "components/services/widget/container";
|
|
||||||
import Block from "components/services/widget/block";
|
import Block from "components/services/widget/block";
|
||||||
|
import Container from "components/services/widget/container";
|
||||||
|
import { useTranslation } from "next-i18next";
|
||||||
|
|
||||||
import useWidgetAPI from "utils/proxy/use-widget-api";
|
import useWidgetAPI from "utils/proxy/use-widget-api";
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { useTranslation } from "next-i18next";
|
|
||||||
import Container from "components/services/widget/container";
|
|
||||||
import Block from "components/services/widget/block";
|
import Block from "components/services/widget/block";
|
||||||
|
import Container from "components/services/widget/container";
|
||||||
|
import { useTranslation } from "next-i18next";
|
||||||
|
|
||||||
import useWidgetAPI from "utils/proxy/use-widget-api";
|
import useWidgetAPI from "utils/proxy/use-widget-api";
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import genericProxyHandler from "utils/proxy/handlers/generic";
|
|
||||||
import { asJson } from "utils/proxy/api-helpers";
|
import { asJson } from "utils/proxy/api-helpers";
|
||||||
|
import genericProxyHandler from "utils/proxy/handlers/generic";
|
||||||
|
|
||||||
const widget = {
|
const widget = {
|
||||||
api: "{url}/api/{endpoint}/wanted?apikey={key}",
|
api: "{url}/api/{endpoint}/wanted?apikey={key}",
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { useTranslation } from "next-i18next";
|
|
||||||
import Container from "components/services/widget/container";
|
|
||||||
import Block from "components/services/widget/block";
|
import Block from "components/services/widget/block";
|
||||||
|
import Container from "components/services/widget/container";
|
||||||
|
import { useTranslation } from "next-i18next";
|
||||||
|
|
||||||
import useWidgetAPI from "utils/proxy/use-widget-api";
|
import useWidgetAPI from "utils/proxy/use-widget-api";
|
||||||
|
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
import cache from "memory-cache";
|
import cache from "memory-cache";
|
||||||
|
|
||||||
import getServiceWidget from "utils/config/service-helpers";
|
import getServiceWidget from "utils/config/service-helpers";
|
||||||
|
import createLogger from "utils/logger";
|
||||||
import { formatApiCall } from "utils/proxy/api-helpers";
|
import { formatApiCall } from "utils/proxy/api-helpers";
|
||||||
import { httpProxy } from "utils/proxy/http";
|
import { httpProxy } from "utils/proxy/http";
|
||||||
import widgets from "widgets/widgets";
|
import widgets from "widgets/widgets";
|
||||||
import createLogger from "utils/logger";
|
|
||||||
|
|
||||||
const proxyName = "beszelProxyHandler";
|
const proxyName = "beszelProxyHandler";
|
||||||
const tokenCacheKey = `${proxyName}__token`;
|
const tokenCacheKey = `${proxyName}__token`;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { useTranslation } from "next-i18next";
|
|
||||||
import Container from "components/services/widget/container";
|
|
||||||
import Block from "components/services/widget/block";
|
import Block from "components/services/widget/block";
|
||||||
|
import Container from "components/services/widget/container";
|
||||||
|
import { useTranslation } from "next-i18next";
|
||||||
|
|
||||||
import useWidgetAPI from "utils/proxy/use-widget-api";
|
import useWidgetAPI from "utils/proxy/use-widget-api";
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import { DateTime } from "luxon";
|
|
||||||
import classNames from "classnames";
|
import classNames from "classnames";
|
||||||
|
import { DateTime } from "luxon";
|
||||||
import { useTranslation } from "next-i18next";
|
import { useTranslation } from "next-i18next";
|
||||||
|
|
||||||
import Event, { compareDateTimezone } from "./event";
|
import Event, { compareDateTimezone } from "./event";
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
import { useEffect, useMemo, useState, useContext } from "react";
|
import Container from "components/services/widget/container";
|
||||||
import dynamic from "next/dynamic";
|
|
||||||
import { DateTime } from "luxon";
|
import { DateTime } from "luxon";
|
||||||
import { useTranslation } from "next-i18next";
|
import { useTranslation } from "next-i18next";
|
||||||
import Container from "components/services/widget/container";
|
import dynamic from "next/dynamic";
|
||||||
|
import { useContext, useEffect, useMemo, useState } from "react";
|
||||||
import { SettingsContext } from "utils/contexts/settings";
|
import { SettingsContext } from "utils/contexts/settings";
|
||||||
|
|
||||||
import Monthly from "./monthly";
|
|
||||||
import Agenda from "./agenda";
|
import Agenda from "./agenda";
|
||||||
|
import Monthly from "./monthly";
|
||||||
|
|
||||||
const colorVariants = {
|
const colorVariants = {
|
||||||
// https://tailwindcss.com/docs/content-configuration#dynamic-class-names
|
// https://tailwindcss.com/docs/content-configuration#dynamic-class-names
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import { useState } from "react";
|
|
||||||
import { useTranslation } from "next-i18next";
|
|
||||||
import { DateTime } from "luxon";
|
|
||||||
import classNames from "classnames";
|
import classNames from "classnames";
|
||||||
|
import { DateTime } from "luxon";
|
||||||
|
import { useTranslation } from "next-i18next";
|
||||||
|
import { useState } from "react";
|
||||||
import { IoMdCheckmarkCircleOutline } from "react-icons/io";
|
import { IoMdCheckmarkCircleOutline } from "react-icons/io";
|
||||||
|
|
||||||
export default function Event({ event, colorVariants, showDate = false, showTime = false, showDateColumn = true }) {
|
export default function Event({ event, colorVariants, showDate = false, showTime = false, showDateColumn = true }) {
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
import { DateTime } from "luxon";
|
|
||||||
import { parseString } from "cal-parser";
|
import { parseString } from "cal-parser";
|
||||||
import { useEffect } from "react";
|
import { DateTime } from "luxon";
|
||||||
import { useTranslation } from "next-i18next";
|
import { useTranslation } from "next-i18next";
|
||||||
|
import { useEffect } from "react";
|
||||||
import { RRule } from "rrule";
|
import { RRule } from "rrule";
|
||||||
|
|
||||||
import useWidgetAPI from "../../../utils/proxy/use-widget-api";
|
|
||||||
import Error from "../../../components/services/widget/error";
|
import Error from "../../../components/services/widget/error";
|
||||||
|
import useWidgetAPI from "../../../utils/proxy/use-widget-api";
|
||||||
|
|
||||||
// https://gist.github.com/jlevy/c246006675becc446360a798e2b2d781
|
// https://gist.github.com/jlevy/c246006675becc446360a798e2b2d781
|
||||||
function simpleHash(str) {
|
function simpleHash(str) {
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
import { DateTime } from "luxon";
|
import { DateTime } from "luxon";
|
||||||
import { useEffect } from "react";
|
import { useEffect } from "react";
|
||||||
|
|
||||||
import useWidgetAPI from "../../../utils/proxy/use-widget-api";
|
|
||||||
import Error from "../../../components/services/widget/error";
|
import Error from "../../../components/services/widget/error";
|
||||||
|
import useWidgetAPI from "../../../utils/proxy/use-widget-api";
|
||||||
|
|
||||||
export default function Integration({ config, params, setEvents, hideErrors = false }) {
|
export default function Integration({ config, params, setEvents, hideErrors = false }) {
|
||||||
const { data: lidarrData, error: lidarrError } = useWidgetAPI(config, "calendar", {
|
const { data: lidarrData, error: lidarrError } = useWidgetAPI(config, "calendar", {
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
import { DateTime } from "luxon";
|
import { DateTime } from "luxon";
|
||||||
import { useEffect } from "react";
|
|
||||||
import { useTranslation } from "next-i18next";
|
import { useTranslation } from "next-i18next";
|
||||||
|
import { useEffect } from "react";
|
||||||
|
|
||||||
import useWidgetAPI from "../../../utils/proxy/use-widget-api";
|
|
||||||
import Error from "../../../components/services/widget/error";
|
import Error from "../../../components/services/widget/error";
|
||||||
|
import useWidgetAPI from "../../../utils/proxy/use-widget-api";
|
||||||
|
|
||||||
export default function Integration({ config, params, setEvents, hideErrors = false }) {
|
export default function Integration({ config, params, setEvents, hideErrors = false }) {
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
import { DateTime } from "luxon";
|
import { DateTime } from "luxon";
|
||||||
import { useEffect } from "react";
|
import { useEffect } from "react";
|
||||||
|
|
||||||
import useWidgetAPI from "../../../utils/proxy/use-widget-api";
|
|
||||||
import Error from "../../../components/services/widget/error";
|
import Error from "../../../components/services/widget/error";
|
||||||
|
import useWidgetAPI from "../../../utils/proxy/use-widget-api";
|
||||||
|
|
||||||
export default function Integration({ config, params, setEvents, hideErrors = false }) {
|
export default function Integration({ config, params, setEvents, hideErrors = false }) {
|
||||||
const { data: readarrData, error: readarrError } = useWidgetAPI(config, "calendar", {
|
const { data: readarrData, error: readarrError } = useWidgetAPI(config, "calendar", {
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
import { DateTime } from "luxon";
|
import { DateTime } from "luxon";
|
||||||
import { useEffect } from "react";
|
import { useEffect } from "react";
|
||||||
|
|
||||||
import useWidgetAPI from "../../../utils/proxy/use-widget-api";
|
|
||||||
import Error from "../../../components/services/widget/error";
|
import Error from "../../../components/services/widget/error";
|
||||||
|
import useWidgetAPI from "../../../utils/proxy/use-widget-api";
|
||||||
|
|
||||||
export default function Integration({ config, params, setEvents, hideErrors = false }) {
|
export default function Integration({ config, params, setEvents, hideErrors = false }) {
|
||||||
const { data: sonarrData, error: sonarrError } = useWidgetAPI(config, "calendar", {
|
const { data: sonarrData, error: sonarrError } = useWidgetAPI(config, "calendar", {
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user