Dynamic plugins (#68)

This commit is contained in:
Gregory Schier
2024-09-06 10:43:25 -07:00
committed by GitHub
parent f7949c9909
commit b3adbc1860
37 changed files with 533 additions and 184 deletions

View File

@@ -0,0 +1,23 @@
import { useMutation } from '@tanstack/react-query';
import type { Plugin } from '@yaakapp/api';
import { atom, useAtomValue, useSetAtom } from 'jotai';
import { minPromiseMillis } from '../lib/minPromiseMillis';
import { listPlugins } from '../lib/store';
const plugins = await listPlugins();
export const pluginsAtom = atom<Plugin[]>(plugins);
export function usePlugins() {
return useAtomValue(pluginsAtom);
}
export function useRefreshPlugins() {
const setPlugins = useSetAtom(pluginsAtom);
return useMutation({
mutationKey: ['refresh_plugins'],
mutationFn: async () => {
const plugins = await minPromiseMillis(listPlugins());
setPlugins(plugins);
},
});
}