Skip to content

Latest commit

 

History

History
40 lines (35 loc) · 1.25 KB

File metadata and controls

40 lines (35 loc) · 1.25 KB

AI React scaffold

Genetic tags: sdk.react.entity.gen1 · sdk.react.invalidation.gen1
RU: AI_REACT_SCAFFOLD_ru.md

import {
  SDKProvider,
  useEntityData,
  useSDKMutationWithInvalidation,
  InvalidationRegistryProvider,
} from '@agentstack/react';
import { resolveAgentStackApiBase } from '@agentstack/sdk';

export function App() {
  return (
    <SDKProvider config={{ apiBase: resolveAgentStackApiBase() }}>
      <InvalidationRegistryProvider registry={yourRegistry}>
        <WalletsList projectId={1} />
      </InvalidationRegistryProvider>
    </SDKProvider>
  );
}

function WalletsList({ projectId }: { projectId: number }) {
  const { data, isLoading } = useEntityData('wallets', {
    projectId,
    fetchList: (sdk, signal) => sdk.wallets.getWallets({ projectId }, { signal }),
  });
  const create = useSDKMutationWithInvalidation({
    invalidateEntity: 'wallets',
    mutationFn: (sdk, body) => sdk.wallets.createWallet(body),
  });
  if (isLoading) return null;
  return <pre>{JSON.stringify(data, null, 2)}</pre>;
}

Monorepo registry example: agentstack-frontend/src/lib/appInvalidationRegistry.ts
Feature quickstart: ../../docs/SDK_FEATURE_QUICKSTART.md