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 (
<>
>
);
}
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 && (
)
}
);