registry.tsx 626 B

1234567891011121314151617181920212223242526272829
  1. "use client";
  2. import { defineRegistry } from "@json-render/react";
  3. import { shadcnComponents } from "@json-render/shadcn";
  4. import { catalog } from "./catalog";
  5. let confettiListener: (() => void) | null = null;
  6. export function onConfetti(cb: () => void) {
  7. confettiListener = cb;
  8. return () => {
  9. confettiListener = null;
  10. };
  11. }
  12. export const { registry } = defineRegistry(catalog, {
  13. components: {
  14. ...shadcnComponents,
  15. },
  16. actions: {
  17. confetti: async () => {
  18. confettiListener?.();
  19. },
  20. },
  21. });
  22. export const actionHandlers: Record<string, () => void> = {
  23. confetti: () => confettiListener?.(),
  24. };