import {
ActionPanel,
List,
Action,
Icon,
Form,
useNavigation,
} from "@raycast/api";
import { useState } from "react";
import { fetchProjects, addProject } from "./api";
import {
FormValidation,
showFailureToast,
useCachedPromise,
useForm,
} from "@raycast/utils";
import { withSupermemory } from "./withSupermemory";
export default withSupermemory(Command);
function Command() {
const { isLoading, data: projects, mutate } = useCachedPromise(fetchProjects);
return (
{!isLoading && !projects?.length ? (
);
}
function CreateProject() {
const { pop } = useNavigation();
const [isLoading, setIsLoading] = useState(false);
const { handleSubmit, itemProps } = useForm<{ name: string }>({
async onSubmit(values) {
setIsLoading(true);
try {
await addProject(values);
pop();
} catch (error) {
await showFailureToast(error, { title: "Failed to add project" });
} finally {
setIsLoading(false);
}
},
validation: {
name: FormValidation.Required,
},
});
return (