di usage in website

This commit is contained in:
2026-01-06 19:36:03 +01:00
parent 589b55a87e
commit e589c30bf8
191 changed files with 6367 additions and 4253 deletions

View File

@@ -1,8 +1,7 @@
'use client';
import { ReactNode } from 'react';
import { useQuery } from '@tanstack/react-query';
import { useServices } from '@/lib/services/ServiceProvider';
import { useCapability } from '@/hooks/useCapability';
type CapabilityGateProps = {
capabilityKey: string;
@@ -17,26 +16,17 @@ export function CapabilityGate({
fallback = null,
comingSoon = null,
}: CapabilityGateProps) {
const { policyService } = useServices();
const { isLoading, isError, capabilityState } = useCapability(capabilityKey);
const { data, isLoading, isError } = useQuery({
queryKey: ['policySnapshot'],
queryFn: () => policyService.getSnapshot(),
staleTime: 60_000,
gcTime: 5 * 60_000,
});
if (isLoading || isError || !data) {
if (isLoading || isError || !capabilityState) {
return <>{fallback}</>;
}
const state = policyService.getCapabilityState(data, capabilityKey);
if (state === 'enabled') {
if (capabilityState === 'enabled') {
return <>{children}</>;
}
if (state === 'coming_soon') {
if (capabilityState === 'coming_soon') {
return <>{comingSoon ?? fallback}</>;
}