Show 10 scenarios at a time and let the user paginate through them to keep the interface responsive with potentially 1000s of scenarios.
27 lines
606 B
TypeScript
27 lines
606 B
TypeScript
import { useEffect } from "react";
|
|
import { api } from "~/utils/api";
|
|
import { useScenarios } from "~/utils/hooks";
|
|
import { useAppStore } from "./store";
|
|
|
|
export function useSyncVariantEditor() {
|
|
const scenarios = useScenarios();
|
|
|
|
useEffect(() => {
|
|
if (scenarios.data) {
|
|
useAppStore.getState().sharedVariantEditor.setScenarios(scenarios.data.scenarios);
|
|
}
|
|
}, [scenarios.data]);
|
|
}
|
|
|
|
export function SyncAppStore() {
|
|
const utils = api.useContext();
|
|
|
|
const setApi = useAppStore((state) => state.setApi);
|
|
|
|
useEffect(() => {
|
|
setApi(utils);
|
|
}, [utils, setApi]);
|
|
|
|
return null;
|
|
}
|