import type { Plugin } from '@yaakapp/api'; import React from 'react'; import { useCreatePlugin } from '../../hooks/useCreatePlugin'; import { usePluginInfo } from '../../hooks/usePluginInfo'; import { usePlugins, useRefreshPlugins } from '../../hooks/usePlugins'; import { Button } from '../core/Button'; import { Checkbox } from '../core/Checkbox'; import { IconButton } from '../core/IconButton'; import { InlineCode } from '../core/InlineCode'; import { HStack } from '../core/Stacks'; import { EmptyStateText } from '../EmptyStateText'; import { SelectFile } from '../SelectFile'; export function SettingsPlugins() { const [directory, setDirectory] = React.useState(null); const plugins = usePlugins(); const createPlugin = useCreatePlugin(); const refreshPlugins = useRefreshPlugins(); return (
{plugins.length === 0 ? (
Plugins extend the functionality of Yaak.
Add your first plugin to get started.
) : ( {plugins.map((p) => ( ))}
Plugin Version
)}
{ e.preventDefault(); if (directory == null) return; createPlugin.mutate(directory); setDirectory(null); }} >
setDirectory(filePath)} filePath={directory} /> {directory && ( )} refreshPlugins.mutate()} />
); } function PluginInfo({ plugin }: { plugin: Plugin }) { const pluginInfo = usePluginInfo(plugin.id); if (pluginInfo.data == null) return null; return ( null} /> {pluginInfo.data?.name} {pluginInfo.data?.version} ); }