import { Link, useNavigate } from "@tanstack/react-router";
import { lazy, Suspense, useState } from "react";
import { commitFile } from "~/fns/git-write";
import { useAction } from "~/hooks/use-action";
import { Button } from "~/ui/Button";
import { CheckboxField, TextField } from "~/ui/Field";
import { ErrorBanner } from "~/ui/Callout";
import { Panel } from "~/ui/Panel";
import { buttonClass } from "~/ui/Button";
const CodeEditor = lazy(() => import("./CodeEditor").then((module) => ({ default: module.CodeEditor })));
type Props = {
owner: string;
repo: string;
branch: string;
headSha: string | null;
initialPath: string;
previousPath: string | null;
initialContent: string;
allowDelete: boolean;
};
export function FileEditor({
owner,
repo,
branch,
headSha,
initialPath,
previousPath,
initialContent,
allowDelete,
}: Props) {
const navigate = useNavigate();
const [path, setPath] = useState(initialPath);
const [content, setContent] = useState(initialContent);
const [newBranch, setNewBranch] = useState(false);
const save = useAction(commitFile, { invalidate: false });
const verb = previousPath ? "Update" : "Create";