Composables
Management, Categories, and Responses
Admin composables for forms, categories, and submission moderation.
useFormForgeManagement
const management = useFormForgeManagement({
scope: 'user'
})
const formsList = await management.listForms(false, {
filters: {
category: 'survey',
search: 'contact'
}
})
await formsList.refresh()
Methods:
listForms(includeDeleted?, options?)listFormRoute(routeKey, options?)refreshForms()/refresh()(global fallback list refresh)createForm(input, options?)patchForm(key, input, options?)publishForm(key, options?)unpublishForm(key, options?)deleteForm(key, options?)getRevisions(key, includeDeleted?, options?)getDiff(key, fromVersion, toVersion, options?)
State:
formsloadingerrorclientErrorfieldErrorsbusinessErrorCodehasCategoryValidationError
listForms() and listFormRoute() return:
data:FormForgeManagementForm[]refresh(): re-run the same list request context
Auto-publish payload support
createForm and patchForm accept both:
auto_publishautoPublish
Outgoing payloads are normalized to auto_publish.
Create example (POST /forms with auto_publish: true):
await management.createForm({
title: 'Contact',
fields: [
{ type: 'text', name: 'full_name', required: true }
],
autoPublish: true
})
Patch example (PATCH /forms/{key} with auto_publish: true):
await management.patchForm('form-key', {
title: 'Contact v2',
auto_publish: true
})
useFormForgeCategory
const categories = useFormForgeCategory({
immediate: true,
initialQuery: {
per_page: 20,
is_active: true
}
})
Methods:
listCategories(query?, options?)listCategoryRoute(routeKey, query?, options?)getCategory(categoryKey, options?)createCategory(input, options?)patchCategory(categoryKey, input, options?)deleteCategory(categoryKey, options?)refresh(options?)
useFormForgeCategoryOptions
Transforms categories into sorted select options:
labelvaluedisabled
useFormForgeResponses
const responses = useFormForgeResponses({
key: 'contact',
immediate: true,
querySync: {
enabled: true,
pageKey: 'page',
perPageKey: 'per_page',
extraKeys: ['search', 'sort']
}
})
Methods:
listResponses(query?, options?)getResponse(submissionId, options?)deleteResponse(submissionId, options?)refresh(options?)
State:
listcurrentlastMetaloadingerror