diff --git a/tranga-website/src/Components/Settings/Download.tsx b/tranga-website/src/Components/Settings/Download.tsx new file mode 100644 index 0000000..4cbd799 --- /dev/null +++ b/tranga-website/src/Components/Settings/Download.tsx @@ -0,0 +1,14 @@ +import {SettingsItem} from "./Settings.tsx"; +import ImageCompression from "./ImageCompression.tsx"; +import DownloadLanguage from "./DownloadLanguage.tsx"; +import ChapterNamingScheme from "./ChapterNamingScheme.tsx"; + +export default function (){ + return ( + + + + + + ) +} \ No newline at end of file diff --git a/tranga-website/src/Components/Settings/LibraryConnectors/AddLibraryConnector.tsx b/tranga-website/src/Components/Settings/LibraryConnectors/AddLibraryConnector.tsx new file mode 100644 index 0000000..5f58618 --- /dev/null +++ b/tranga-website/src/Components/Settings/LibraryConnectors/AddLibraryConnector.tsx @@ -0,0 +1,19 @@ +import {Modal, ModalDialog, Tab, TabList, Tabs} from "@mui/joy"; +import ModalClose from "@mui/joy/ModalClose"; +import * as React from "react"; + +export default function ({open, setOpen} : {open: boolean, setOpen: Dispatch}) { + return ( + setOpen(false)}> + + + + + Komga + Kavita + + + + + ); +} \ No newline at end of file diff --git a/tranga-website/src/Components/Settings/LibraryConnectors/LibraryConnectors.tsx b/tranga-website/src/Components/Settings/LibraryConnectors/LibraryConnectors.tsx new file mode 100644 index 0000000..c4f1051 --- /dev/null +++ b/tranga-website/src/Components/Settings/LibraryConnectors/LibraryConnectors.tsx @@ -0,0 +1,18 @@ +import {Button, Card, Typography} from "@mui/joy"; +import {useState} from "react"; +import ListLibraryConnectors from "./ListLibraryConnectors.tsx"; +import AddLibraryConnector from "./AddLibraryConnector.tsx"; + +export default function (){ + + const [addDialogOpen, setAddDialogOpen] = useState(false); + + return ( + + Library Connectors + + + setAddDialogOpen(false)} /> + + ); +} \ No newline at end of file diff --git a/tranga-website/src/Components/Settings/LibraryConnectors/ListLibraryConnectors.tsx b/tranga-website/src/Components/Settings/LibraryConnectors/ListLibraryConnectors.tsx new file mode 100644 index 0000000..c63053f --- /dev/null +++ b/tranga-website/src/Components/Settings/LibraryConnectors/ListLibraryConnectors.tsx @@ -0,0 +1,35 @@ +import {useContext, useEffect, useState} from "react"; +import {ApiContext} from "../../../apiClient/ApiContext.tsx"; +import {LibraryConnector} from "../../../apiClient/data-contracts.ts"; +import {Card, Chip, Input, Stack} from "@mui/joy"; + +export default function (){ + const Api = useContext(ApiContext); + const [libraryConnectors, setLibraryConnectors] = useState([]); + + useEffect(() => { + getConnectors(); + }, []); + + const getConnectors = () => { + Api.libraryConnectorList().then(r => { + if(r.ok) + setLibraryConnectors(r.data); + }) + }; + + return ( + + {libraryConnectors.map(c => )} + + ); +} + +function LibraryConnectorItem({connector} : {connector: LibraryConnector}){ + return ( + + {connector.libraryType} + + + ); +} \ No newline at end of file diff --git a/tranga-website/src/Components/Settings/NotificationConnectors.tsx b/tranga-website/src/Components/Settings/NotificationConnectors.tsx deleted file mode 100644 index c363fba..0000000 --- a/tranga-website/src/Components/Settings/NotificationConnectors.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import { ReactNode } from "react"; -import { SettingsItem } from "./Settings.tsx"; -import { Button } from "@mui/joy"; -import NotificationConnectors from "./AddNotificationConnector.tsx"; -import * as React from "react"; - -export default function (): ReactNode { - const [notificationConnectorsOpen, setNotificationConnectorsOpen] = - React.useState(false); - - return ( - - - - - ); -} diff --git a/tranga-website/src/Components/Settings/AddNotificationConnector.tsx b/tranga-website/src/Components/Settings/NotificationConnectors/AddNotificationConnector.tsx similarity index 100% rename from tranga-website/src/Components/Settings/AddNotificationConnector.tsx rename to tranga-website/src/Components/Settings/NotificationConnectors/AddNotificationConnector.tsx diff --git a/tranga-website/src/Components/Settings/NotificationConnectors/ListNotificationConnector.tsx b/tranga-website/src/Components/Settings/NotificationConnectors/ListNotificationConnector.tsx new file mode 100644 index 0000000..af50e68 --- /dev/null +++ b/tranga-website/src/Components/Settings/NotificationConnectors/ListNotificationConnector.tsx @@ -0,0 +1,52 @@ +import {ApiContext} from "../../../apiClient/ApiContext.tsx"; +import {useContext, useEffect, useState} from "react"; +import { NotificationConnector } from "../../../apiClient/data-contracts.ts"; +import {Card, Chip, Input, Stack, Table, Textarea, Typography} from "@mui/joy"; + +export default function (){ + const Api = useContext(ApiContext); + const [notificationConnectors, setNotificationConnectors] = useState([]); + + useEffect(() => { + getConnectors(); + }, []); + + const getConnectors = () => { + Api.notificationConnectorList().then(r => { + if(r.ok) + setNotificationConnectors(r.data); + }) + }; + + return ( + + {notificationConnectors.map(c => )} + + ); +} + +function NotificationConnectorItem({connector} : {connector: NotificationConnector}){ + return ( + + {connector.name} + {connector.httpMethod}} value={connector.url} /> + + + + + + + + + {Object.entries(connector.headers).map(x => + + + + + )} + +
HeaderValue
{x[0]}{[x[1]]}
+