import { IconBrandAws, IconCloud, IconServer } from "@tabler/icons-react"; import { isDebug } from "core"; import { autoFormatString } from "core/utils"; import { twMerge } from "tailwind-merge"; import { useBknd } from "ui/client/BkndProvider"; import { useBkndMedia } from "ui/client/schema/media/use-bknd-media"; import { Button } from "ui/components/buttons/Button"; import { Message } from "ui/components/display/Message"; import * as Formy from "ui/components/form/Formy"; import { AnyOf, Field, Form, FormContextOverride, FormDebug, ObjectField, Subscribe } from "ui/components/form/json-schema-form"; import { Media } from "ui/elements"; import { useBrowserTitle } from "ui/hooks/use-browser-title"; import * as AppShell from "ui/layouts/AppShell/AppShell"; export function MediaSettings(props) { useBrowserTitle(["Media", "Settings"]); const { hasSecrets } = useBknd({ withSecrets: true }); if (!hasSecrets) { return ; } return ; } const formConfig = { ignoreKeys: ["entity_name", "basepath"], options: { debug: isDebug(), keepEmpty: true } }; function MediaSettingsInternal() { const { config, schema, actions } = useBkndMedia(); async function onSubmit(data: any) { console.log("submit", data); await actions.config.patch(data); //await new Promise((resolve) => setTimeout(resolve, 1000)); } return ( <>
{({ dirty, errors, submitting }) => ( 0 || submitting} > Update } > Settings )}
); } const Icons = [IconBrandAws, IconCloud, IconServer]; const AdapterIcon = ({ index }: { index: number }) => { const Icon = Icons[index]; if (!Icon) return null; return ; }; function Adapters() { const ctx = AnyOf.useContext(); return ( Media Adapter: {ctx.selected === null && (Choose one)}
{ctx.schemas?.map((schema: any, i) => ( ))}
{ctx.selected !== null && ( 0}> {autoFormatString(ctx.selectedSchema!.title!)} )}
); } const Overlay = () => ( {({ data }) => !data.enabled && (
) } );