From 6064da8008b0dc860fc0da1a30073aebf6a2d4b2 Mon Sep 17 00:00:00 2001 From: Ivan <8611739+IRBorisov@users.noreply.github.com> Date: Sun, 20 Apr 2025 16:21:06 +0300 Subject: [PATCH] R: Unify naming convention for frontend APIs --- .../src/features/library/backend/api.ts | 16 ++++---- .../src/features/library/backend/types.ts | 8 ++-- ...sion-create.tsx => use-create-version.tsx} | 8 ++-- ...sion-delete.tsx => use-delete-version.tsx} | 6 +-- ...on-restore.tsx => use-restore-version.tsx} | 6 +-- ...sion-update.tsx => use-update-version.tsx} | 8 ++-- .../library/dialogs/dlg-create-version.tsx | 12 +++--- .../dlg-edit-versions/dlg-edit-versions.tsx | 16 ++++---- .../frontend/src/features/oss/backend/api.ts | 34 ++++++++-------- .../src/features/oss/backend/types.ts | 26 ++++++------ ...-input-create.tsx => use-create-input.tsx} | 6 +-- ...on-create.tsx => use-create-operation.tsx} | 8 ++-- ...on-delete.tsx => use-delete-operation.tsx} | 8 ++-- ...-execute.tsx => use-execute-operation.tsx} | 6 +-- .../oss/backend/use-relocate-constituents.tsx | 4 +- ...-input-update.tsx => use-update-input.tsx} | 8 ++-- ...on-update.tsx => use-update-operation.tsx} | 8 ++-- .../oss/dialogs/dlg-change-input-schema.tsx | 12 +++--- .../dlg-create-operation.tsx | 12 +++--- .../tab-input-operation.tsx | 4 +- .../tab-synthesis-operation.tsx | 4 +- .../oss/dialogs/dlg-delete-operation.tsx | 12 +++--- .../dlg-edit-operation/dlg-edit-operation.tsx | 12 +++--- .../dlg-edit-operation/tab-arguments.tsx | 4 +- .../dlg-edit-operation/tab-operation.tsx | 4 +- .../dlg-edit-operation/tab-synthesis.tsx | 4 +- .../oss/dialogs/dlg-relocate-constituents.tsx | 8 ++-- .../editor-oss-graph/node-context-menu.tsx | 8 ++-- .../editor-oss-graph/toolbar-oss-graph.tsx | 4 +- .../src/features/rsform/backend/api.ts | 40 +++++++++---------- .../src/features/rsform/backend/types.ts | 30 +++++++------- ...create.tsx => use-create-constituenta.tsx} | 8 ++-- ...delete.tsx => use-delete-constituents.tsx} | 6 +-- ...cst-move.tsx => use-move-constituents.tsx} | 8 ++-- ...rename.tsx => use-rename-constituenta.tsx} | 8 ++-- ...te.tsx => use-substitute-constituents.tsx} | 8 ++-- ...update.tsx => use-update-constituenta.tsx} | 8 ++-- .../rsform/components/pick-substitutions.tsx | 12 +++--- .../dialogs/dlg-create-cst/dlg-create-cst.tsx | 18 +++++---- .../dlg-create-cst/form-create-cst.tsx | 4 +- .../dlg-cst-template/dlg-cst-template.tsx | 17 +++++--- .../dlg-cst-template/tab-arguments.tsx | 4 +- .../dlg-cst-template/template-state.tsx | 4 +- .../dialogs/dlg-delete-cst/dlg-delete-cst.tsx | 4 +- .../dlg-edit-word-forms.tsx | 4 +- .../rsform/dialogs/dlg-rename-cst.tsx | 12 +++--- .../rsform/dialogs/dlg-substitute-cst.tsx | 14 +++---- .../frontend/src/features/rsform/index.ts | 2 +- .../editor-constituenta/form-constituenta.tsx | 12 +++--- .../editor-rsform-card/toolbar-versioning.tsx | 4 +- .../rsform/pages/rsform-page/rsedit-state.tsx | 12 +++--- 51 files changed, 262 insertions(+), 253 deletions(-) rename rsconcept/frontend/src/features/library/backend/{use-version-create.tsx => use-create-version.tsx} (78%) rename rsconcept/frontend/src/features/library/backend/{use-version-delete.tsx => use-delete-version.tsx} (84%) rename rsconcept/frontend/src/features/library/backend/{use-version-restore.tsx => use-restore-version.tsx} (79%) rename rsconcept/frontend/src/features/library/backend/{use-version-update.tsx => use-update-version.tsx} (85%) rename rsconcept/frontend/src/features/oss/backend/{use-input-create.tsx => use-create-input.tsx} (85%) rename rsconcept/frontend/src/features/oss/backend/{use-operation-create.tsx => use-create-operation.tsx} (74%) rename rsconcept/frontend/src/features/oss/backend/{use-operation-delete.tsx => use-delete-operation.tsx} (73%) rename rsconcept/frontend/src/features/oss/backend/{use-operation-execute.tsx => use-execute-operation.tsx} (83%) rename rsconcept/frontend/src/features/oss/backend/{use-input-update.tsx => use-update-input.tsx} (79%) rename rsconcept/frontend/src/features/oss/backend/{use-operation-update.tsx => use-update-operation.tsx} (82%) rename rsconcept/frontend/src/features/rsform/backend/{use-cst-create.tsx => use-create-constituenta.tsx} (82%) rename rsconcept/frontend/src/features/rsform/backend/{use-cst-delete.tsx => use-delete-constituents.tsx} (83%) rename rsconcept/frontend/src/features/rsform/backend/{use-cst-move.tsx => use-move-constituents.tsx} (72%) rename rsconcept/frontend/src/features/rsform/backend/{use-cst-rename.tsx => use-rename-constituenta.tsx} (79%) rename rsconcept/frontend/src/features/rsform/backend/{use-cst-substitute.tsx => use-substitute-constituents.tsx} (78%) rename rsconcept/frontend/src/features/rsform/backend/{use-cst-update.tsx => use-update-constituenta.tsx} (74%) diff --git a/rsconcept/frontend/src/features/library/backend/api.ts b/rsconcept/frontend/src/features/library/backend/api.ts index 2c796c62..03927291 100644 --- a/rsconcept/frontend/src/features/library/backend/api.ts +++ b/rsconcept/frontend/src/features/library/backend/api.ts @@ -15,12 +15,12 @@ import { type AccessPolicy, type ICloneLibraryItemDTO, type ICreateLibraryItemDTO, + type ICreateVersionDTO, type ILibraryItem, type IRenameLocationDTO, type IUpdateLibraryItemDTO, - type IVersionCreateDTO, + type IUpdateVersionDTO, type IVersionExInfo, - type IVersionUpdateDTO, schemaLibraryItem, schemaLibraryItemArray, schemaVersionExInfo @@ -136,8 +136,8 @@ export const libraryApi = { } }), - versionCreate: ({ itemID, data }: { itemID: number; data: IVersionCreateDTO }) => - axiosPost({ + createVersion: ({ itemID, data }: { itemID: number; data: ICreateVersionDTO }) => + axiosPost({ schema: schemaVersionCreatedResponse, endpoint: `/api/library/${itemID}/create-version`, request: { @@ -145,7 +145,7 @@ export const libraryApi = { successMessage: infoMsg.newVersion(data.version) } }), - versionRestore: ({ versionID }: { versionID: number }) => + restoreVersion: ({ versionID }: { versionID: number }) => axiosPatch({ schema: schemaRSForm, endpoint: `/api/versions/${versionID}/restore`, @@ -153,8 +153,8 @@ export const libraryApi = { successMessage: infoMsg.versionRestored } }), - versionUpdate: (data: { itemID: number; version: IVersionUpdateDTO }) => - axiosPatch({ + updateVersion: (data: { itemID: number; version: IUpdateVersionDTO }) => + axiosPatch({ schema: schemaVersionExInfo, endpoint: `/api/versions/${data.version.id}`, request: { @@ -162,7 +162,7 @@ export const libraryApi = { successMessage: infoMsg.changesSaved } }), - versionDelete: (data: { itemID: number; versionID: number }) => + deleteVersion: (data: { itemID: number; versionID: number }) => axiosDelete({ endpoint: `/api/versions/${data.versionID}`, request: { diff --git a/rsconcept/frontend/src/features/library/backend/types.ts b/rsconcept/frontend/src/features/library/backend/types.ts index 6ca8c6fc..cc63fa3e 100644 --- a/rsconcept/frontend/src/features/library/backend/types.ts +++ b/rsconcept/frontend/src/features/library/backend/types.ts @@ -49,10 +49,10 @@ export type ICreateLibraryItemDTO = z.infer; export type IUpdateLibraryItemDTO = z.infer; /** Create version metadata in persistent storage. */ -export type IVersionCreateDTO = z.infer; +export type ICreateVersionDTO = z.infer; /** Represents version data, intended to update version metadata in persistent storage. */ -export type IVersionUpdateDTO = z.infer; +export type IUpdateVersionDTO = z.infer; // ======= SCHEMAS ========= export const schemaLibraryItemType = z.enum(Object.values(LibraryItemType) as [LibraryItemType, ...LibraryItemType[]]); @@ -140,13 +140,13 @@ export const schemaVersionExInfo = schemaVersionInfo.extend({ item: z.number() }); -export const schemaVersionUpdate = z.strictObject({ +export const schemaUpdateVersion = z.strictObject({ id: z.number(), version: z.string().nonempty(errorMsg.requiredField), description: z.string() }); -export const schemaVersionCreate = z.strictObject({ +export const schemaCreateVersion = z.strictObject({ version: z.string(), description: z.string(), items: z.array(z.number()) diff --git a/rsconcept/frontend/src/features/library/backend/use-version-create.tsx b/rsconcept/frontend/src/features/library/backend/use-create-version.tsx similarity index 78% rename from rsconcept/frontend/src/features/library/backend/use-version-create.tsx rename to rsconcept/frontend/src/features/library/backend/use-create-version.tsx index 066559e0..5da155ff 100644 --- a/rsconcept/frontend/src/features/library/backend/use-version-create.tsx +++ b/rsconcept/frontend/src/features/library/backend/use-create-version.tsx @@ -3,15 +3,15 @@ import { useMutation, useQueryClient } from '@tanstack/react-query'; import { KEYS } from '@/backend/configuration'; import { libraryApi } from './api'; -import { type IVersionCreateDTO } from './types'; +import { type ICreateVersionDTO } from './types'; import { useUpdateTimestamp } from './use-update-timestamp'; -export const useVersionCreate = () => { +export const useCreateVersion = () => { const client = useQueryClient(); const { updateTimestamp } = useUpdateTimestamp(); const mutation = useMutation({ mutationKey: [KEYS.global_mutation, libraryApi.baseKey, 'create-version'], - mutationFn: libraryApi.versionCreate, + mutationFn: libraryApi.createVersion, onSuccess: data => { client.setQueryData(KEYS.composite.rsItem({ itemID: data.schema.id }), data.schema); updateTimestamp(data.schema.id); @@ -19,7 +19,7 @@ export const useVersionCreate = () => { onError: () => client.invalidateQueries() }); return { - versionCreate: (data: { itemID: number; data: IVersionCreateDTO }) => + createVersion: (data: { itemID: number; data: ICreateVersionDTO }) => mutation.mutateAsync(data).then(response => response.version) }; }; diff --git a/rsconcept/frontend/src/features/library/backend/use-version-delete.tsx b/rsconcept/frontend/src/features/library/backend/use-delete-version.tsx similarity index 84% rename from rsconcept/frontend/src/features/library/backend/use-version-delete.tsx rename to rsconcept/frontend/src/features/library/backend/use-delete-version.tsx index d115f87d..30b689e0 100644 --- a/rsconcept/frontend/src/features/library/backend/use-version-delete.tsx +++ b/rsconcept/frontend/src/features/library/backend/use-delete-version.tsx @@ -6,11 +6,11 @@ import { KEYS } from '@/backend/configuration'; import { libraryApi } from './api'; -export const useVersionDelete = () => { +export const useDeleteVersion = () => { const client = useQueryClient(); const mutation = useMutation({ mutationKey: [KEYS.global_mutation, libraryApi.baseKey, 'delete-version'], - mutationFn: libraryApi.versionDelete, + mutationFn: libraryApi.deleteVersion, onSuccess: (_, variables) => { client.setQueryData(KEYS.composite.rsItem({ itemID: variables.itemID }), (prev: IRSFormDTO | undefined) => !prev @@ -24,6 +24,6 @@ export const useVersionDelete = () => { onError: () => client.invalidateQueries() }); return { - versionDelete: (data: { itemID: number; versionID: number }) => mutation.mutateAsync(data) + deleteVersion: (data: { itemID: number; versionID: number }) => mutation.mutateAsync(data) }; }; diff --git a/rsconcept/frontend/src/features/library/backend/use-version-restore.tsx b/rsconcept/frontend/src/features/library/backend/use-restore-version.tsx similarity index 79% rename from rsconcept/frontend/src/features/library/backend/use-version-restore.tsx rename to rsconcept/frontend/src/features/library/backend/use-restore-version.tsx index fa022d5f..81d016d0 100644 --- a/rsconcept/frontend/src/features/library/backend/use-version-restore.tsx +++ b/rsconcept/frontend/src/features/library/backend/use-restore-version.tsx @@ -4,11 +4,11 @@ import { KEYS } from '@/backend/configuration'; import { libraryApi } from './api'; -export const useVersionRestore = () => { +export const useRestoreVersion = () => { const client = useQueryClient(); const mutation = useMutation({ mutationKey: [KEYS.global_mutation, libraryApi.baseKey, 'restore-version'], - mutationFn: libraryApi.versionRestore, + mutationFn: libraryApi.restoreVersion, onSuccess: data => { client.setQueryData(KEYS.composite.rsItem({ itemID: data.id }), data); return client.invalidateQueries({ queryKey: [libraryApi.baseKey] }); @@ -16,6 +16,6 @@ export const useVersionRestore = () => { onError: () => client.invalidateQueries() }); return { - versionRestore: (data: { versionID: number }) => mutation.mutateAsync(data) + restoreVersion: (data: { versionID: number }) => mutation.mutateAsync(data) }; }; diff --git a/rsconcept/frontend/src/features/library/backend/use-version-update.tsx b/rsconcept/frontend/src/features/library/backend/use-update-version.tsx similarity index 85% rename from rsconcept/frontend/src/features/library/backend/use-version-update.tsx rename to rsconcept/frontend/src/features/library/backend/use-update-version.tsx index 7f07991e..01a207c7 100644 --- a/rsconcept/frontend/src/features/library/backend/use-version-update.tsx +++ b/rsconcept/frontend/src/features/library/backend/use-update-version.tsx @@ -5,13 +5,13 @@ import { type IRSFormDTO } from '@/features/rsform'; import { KEYS } from '@/backend/configuration'; import { libraryApi } from './api'; -import { type IVersionUpdateDTO } from './types'; +import { type IUpdateVersionDTO } from './types'; -export const useVersionUpdate = () => { +export const useUpdateVersion = () => { const client = useQueryClient(); const mutation = useMutation({ mutationKey: [KEYS.global_mutation, libraryApi.baseKey, 'update-version'], - mutationFn: libraryApi.versionUpdate, + mutationFn: libraryApi.updateVersion, onSuccess: (data, variables) => { client.setQueryData(KEYS.composite.rsItem({ itemID: variables.itemID }), (prev: IRSFormDTO | undefined) => !prev @@ -41,6 +41,6 @@ export const useVersionUpdate = () => { onError: () => client.invalidateQueries() }); return { - versionUpdate: (data: { itemID: number; version: IVersionUpdateDTO }) => mutation.mutateAsync(data) + updateVersion: (data: { itemID: number; version: IUpdateVersionDTO }) => mutation.mutateAsync(data) }; }; diff --git a/rsconcept/frontend/src/features/library/dialogs/dlg-create-version.tsx b/rsconcept/frontend/src/features/library/dialogs/dlg-create-version.tsx index 81acacf5..08e6bfa5 100644 --- a/rsconcept/frontend/src/features/library/dialogs/dlg-create-version.tsx +++ b/rsconcept/frontend/src/features/library/dialogs/dlg-create-version.tsx @@ -8,8 +8,8 @@ import { ModalForm } from '@/components/modal'; import { useDialogsStore } from '@/stores/dialogs'; import { errorMsg } from '@/utils/labels'; -import { type IVersionCreateDTO, type IVersionInfo, schemaVersionCreate } from '../backend/types'; -import { useVersionCreate } from '../backend/use-version-create'; +import { type ICreateVersionDTO, type IVersionInfo, schemaCreateVersion } from '../backend/types'; +import { useCreateVersion } from '../backend/use-create-version'; import { nextVersion } from '../models/library-api'; export interface DlgCreateVersionProps { @@ -24,10 +24,10 @@ export function DlgCreateVersion() { const { itemID, versions, selected, totalCount, onCreate } = useDialogsStore( state => state.props as DlgCreateVersionProps ); - const { versionCreate } = useVersionCreate(); + const { createVersion: versionCreate } = useCreateVersion(); - const { register, handleSubmit, control } = useForm({ - resolver: zodResolver(schemaVersionCreate), + const { register, handleSubmit, control } = useForm({ + resolver: zodResolver(schemaCreateVersion), defaultValues: { version: versions.length > 0 ? nextVersion(versions[versions.length - 1].version) : '1.0.0', description: '', @@ -37,7 +37,7 @@ export function DlgCreateVersion() { const version = useWatch({ control, name: 'version' }); const canSubmit = !versions.find(ver => ver.version === version); - function onSubmit(data: IVersionCreateDTO) { + function onSubmit(data: ICreateVersionDTO) { return versionCreate({ itemID, data }).then(onCreate); } diff --git a/rsconcept/frontend/src/features/library/dialogs/dlg-edit-versions/dlg-edit-versions.tsx b/rsconcept/frontend/src/features/library/dialogs/dlg-edit-versions/dlg-edit-versions.tsx index 76873fb7..99456a5d 100644 --- a/rsconcept/frontend/src/features/library/dialogs/dlg-edit-versions/dlg-edit-versions.tsx +++ b/rsconcept/frontend/src/features/library/dialogs/dlg-edit-versions/dlg-edit-versions.tsx @@ -14,10 +14,10 @@ import { ModalView } from '@/components/modal'; import { useDialogsStore } from '@/stores/dialogs'; import { errorMsg } from '@/utils/labels'; -import { type IVersionUpdateDTO, schemaVersionUpdate } from '../../backend/types'; +import { type IUpdateVersionDTO, schemaUpdateVersion } from '../../backend/types'; +import { useDeleteVersion } from '../../backend/use-delete-version'; import { useMutatingLibrary } from '../../backend/use-mutating-library'; -import { useVersionDelete } from '../../backend/use-version-delete'; -import { useVersionUpdate } from '../../backend/use-version-update'; +import { useUpdateVersion } from '../../backend/use-update-version'; import { TableVersions } from './table-versions'; @@ -31,8 +31,8 @@ export function DlgEditVersions() { const hideDialog = useDialogsStore(state => state.hideDialog); const { schema } = useRSFormSuspense({ itemID }); const isProcessing = useMutatingLibrary(); - const { versionDelete } = useVersionDelete(); - const { versionUpdate } = useVersionUpdate(); + const { deleteVersion: versionDelete } = useDeleteVersion(); + const { updateVersion: versionUpdate } = useUpdateVersion(); const { register, @@ -40,8 +40,8 @@ export function DlgEditVersions() { control, reset, formState: { isDirty, errors: formErrors } - } = useForm({ - resolver: zodResolver(schemaVersionUpdate), + } = useForm({ + resolver: zodResolver(schemaUpdateVersion), defaultValues: { id: schema.versions[schema.versions.length - 1].id, version: schema.versions[schema.versions.length - 1].version, @@ -77,7 +77,7 @@ export function DlgEditVersions() { }); } - function onUpdate(data: IVersionUpdateDTO) { + function onUpdate(data: IUpdateVersionDTO) { if (!isDirty || isProcessing || !isValid) { return; } diff --git a/rsconcept/frontend/src/features/oss/backend/api.ts b/rsconcept/frontend/src/features/oss/backend/api.ts index cd35c5ea..61047d5e 100644 --- a/rsconcept/frontend/src/features/oss/backend/api.ts +++ b/rsconcept/frontend/src/features/oss/backend/api.ts @@ -6,16 +6,16 @@ import { infoMsg } from '@/utils/labels'; import { type IConstituentaReference, - type ICstRelocateDTO, + type ICreateOperationDTO, + type IDeleteOperationDTO, type IInputCreatedResponse, - type IInputUpdateDTO, type IOperationCreatedResponse, - type IOperationCreateDTO, - type IOperationDeleteDTO, type IOperationSchemaDTO, - type IOperationUpdateDTO, type IOssLayout, + type IRelocateConstituentsDTO, type ITargetOperation, + type IUpdateInputDTO, + type IUpdateOperationDTO, schemaConstituentaReference, schemaInputCreatedResponse, schemaOperationCreatedResponse, @@ -49,8 +49,8 @@ export const ossApi = { } }), - operationCreate: ({ itemID, data }: { itemID: number; data: IOperationCreateDTO }) => - axiosPost({ + createOperation: ({ itemID, data }: { itemID: number; data: ICreateOperationDTO }) => + axiosPost({ schema: schemaOperationCreatedResponse, endpoint: `/api/oss/${itemID}/create-operation`, request: { @@ -58,8 +58,8 @@ export const ossApi = { successMessage: response => infoMsg.newOperation(response.new_operation.alias) } }), - operationDelete: ({ itemID, data }: { itemID: number; data: IOperationDeleteDTO }) => - axiosPatch({ + deleteOperation: ({ itemID, data }: { itemID: number; data: IDeleteOperationDTO }) => + axiosPatch({ schema: schemaOperationSchema, endpoint: `/api/oss/${itemID}/delete-operation`, request: { @@ -67,7 +67,7 @@ export const ossApi = { successMessage: infoMsg.operationDestroyed } }), - inputCreate: ({ itemID, data }: { itemID: number; data: ITargetOperation }) => + createInput: ({ itemID, data }: { itemID: number; data: ITargetOperation }) => axiosPatch({ schema: schemaInputCreatedResponse, endpoint: `/api/oss/${itemID}/create-input`, @@ -76,8 +76,8 @@ export const ossApi = { successMessage: infoMsg.newLibraryItem } }), - inputUpdate: ({ itemID, data }: { itemID: number; data: IInputUpdateDTO }) => - axiosPatch({ + updateInput: ({ itemID, data }: { itemID: number; data: IUpdateInputDTO }) => + axiosPatch({ schema: schemaOperationSchema, endpoint: `/api/oss/${itemID}/set-input`, request: { @@ -85,8 +85,8 @@ export const ossApi = { successMessage: infoMsg.changesSaved } }), - operationUpdate: ({ itemID, data }: { itemID: number; data: IOperationUpdateDTO }) => - axiosPatch({ + updateOperation: ({ itemID, data }: { itemID: number; data: IUpdateOperationDTO }) => + axiosPatch({ schema: schemaOperationSchema, endpoint: `/api/oss/${itemID}/update-operation`, request: { @@ -94,7 +94,7 @@ export const ossApi = { successMessage: infoMsg.changesSaved } }), - operationExecute: ({ itemID, data }: { itemID: number; data: ITargetOperation }) => + executeOperation: ({ itemID, data }: { itemID: number; data: ITargetOperation }) => axiosPost({ schema: schemaOperationSchema, endpoint: `/api/oss/${itemID}/execute-operation`, @@ -104,8 +104,8 @@ export const ossApi = { } }), - relocateConstituents: (data: ICstRelocateDTO) => - axiosPost({ + relocateConstituents: (data: IRelocateConstituentsDTO) => + axiosPost({ schema: schemaOperationSchema, endpoint: `/api/oss/relocate-constituents`, request: { diff --git a/rsconcept/frontend/src/features/oss/backend/types.ts b/rsconcept/frontend/src/features/oss/backend/types.ts index 706e2db5..f044aee1 100644 --- a/rsconcept/frontend/src/features/oss/backend/types.ts +++ b/rsconcept/frontend/src/features/oss/backend/types.ts @@ -1,7 +1,7 @@ import { z } from 'zod'; import { schemaLibraryItem } from '@/features/library/backend/types'; -import { schemaCstSubstitute } from '@/features/rsform/backend/types'; +import { schemaSubstituteConstituents } from '@/features/rsform/backend/types'; import { errorMsg } from '@/utils/labels'; @@ -28,7 +28,7 @@ export type IOperationSchemaDTO = z.infer; export type IOssLayout = z.infer; /** Represents {@link IOperation} data, used in creation process. */ -export type IOperationCreateDTO = z.infer; +export type ICreateOperationDTO = z.infer; /** Represents data response when creating {@link IOperation}. */ export type IOperationCreatedResponse = z.infer; @@ -41,19 +41,19 @@ export interface ITargetOperation { } /** Represents {@link IOperation} data, used in destruction process. */ -export type IOperationDeleteDTO = z.infer; +export type IDeleteOperationDTO = z.infer; /** Represents data response when creating {@link IRSForm} for Input {@link IOperation}. */ export type IInputCreatedResponse = z.infer; /** Represents {@link IOperation} data, used in setInput process. */ -export type IInputUpdateDTO = z.infer; +export type IUpdateInputDTO = z.infer; /** Represents {@link IOperation} data, used in update process. */ -export type IOperationUpdateDTO = z.infer; +export type IUpdateOperationDTO = z.infer; /** Represents data, used relocating {@link IConstituenta}s between {@link ILibraryItem}s. */ -export type ICstRelocateDTO = z.infer; +export type IRelocateConstituentsDTO = z.infer; /** Represents {@link IConstituenta} reference. */ export type IConstituentaReference = z.infer; @@ -80,7 +80,7 @@ export const schemaBlock = z.strictObject({ parent: z.number().nullable() }); -export const schemaCstSubstituteInfo = schemaCstSubstitute.extend({ +export const schemaCstSubstituteInfo = schemaSubstituteConstituents.extend({ operation: z.number(), original_alias: z.string(), original_term: z.string(), @@ -121,7 +121,7 @@ export const schemaOperationSchema = schemaLibraryItem.extend({ substitutions: z.array(schemaCstSubstituteInfo) }); -export const schemaOperationCreate = z.strictObject({ +export const schemaCreateOperation = z.strictObject({ layout: schemaOssLayout, item_data: z.strictObject({ alias: z.string().nonempty(), @@ -142,14 +142,14 @@ export const schemaOperationCreatedResponse = z.strictObject({ oss: schemaOperationSchema }); -export const schemaOperationDelete = z.strictObject({ +export const schemaDeleteOperation = z.strictObject({ target: z.number(), layout: schemaOssLayout, keep_constituents: z.boolean(), delete_schema: z.boolean() }); -export const schemaInputUpdate = z.strictObject({ +export const schemaUpdateInput = z.strictObject({ target: z.number(), layout: schemaOssLayout, input: z.number().nullable() @@ -160,7 +160,7 @@ export const schemaInputCreatedResponse = z.strictObject({ oss: schemaOperationSchema }); -export const schemaOperationUpdate = z.strictObject({ +export const schemaUpdateOperation = z.strictObject({ target: z.number(), layout: schemaOssLayout, item_data: z.strictObject({ @@ -169,10 +169,10 @@ export const schemaOperationUpdate = z.strictObject({ description: z.string() }), arguments: z.array(z.number()), - substitutions: z.array(schemaCstSubstitute) + substitutions: z.array(schemaSubstituteConstituents) }); -export const schemaCstRelocate = z.strictObject({ +export const schemaRelocateConstituents = z.strictObject({ destination: z.number().nullable(), items: z.array(z.number()).refine(data => data.length > 0) }); diff --git a/rsconcept/frontend/src/features/oss/backend/use-input-create.tsx b/rsconcept/frontend/src/features/oss/backend/use-create-input.tsx similarity index 85% rename from rsconcept/frontend/src/features/oss/backend/use-input-create.tsx rename to rsconcept/frontend/src/features/oss/backend/use-create-input.tsx index 39c7be0d..7a43d7f2 100644 --- a/rsconcept/frontend/src/features/oss/backend/use-input-create.tsx +++ b/rsconcept/frontend/src/features/oss/backend/use-create-input.tsx @@ -5,11 +5,11 @@ import { KEYS } from '@/backend/configuration'; import { ossApi } from './api'; import { type ITargetOperation } from './types'; -export const useInputCreate = () => { +export const useCreateInput = () => { const client = useQueryClient(); const mutation = useMutation({ mutationKey: [KEYS.global_mutation, ossApi.baseKey, 'input-create'], - mutationFn: ossApi.inputCreate, + mutationFn: ossApi.createInput, onSuccess: data => { client.setQueryData(ossApi.getOssQueryOptions({ itemID: data.oss.id }).queryKey, data.oss); return Promise.allSettled([ @@ -20,7 +20,7 @@ export const useInputCreate = () => { onError: () => client.invalidateQueries() }); return { - inputCreate: (data: { itemID: number; data: ITargetOperation }) => + createInput: (data: { itemID: number; data: ITargetOperation }) => mutation.mutateAsync(data).then(response => response.new_schema) }; }; diff --git a/rsconcept/frontend/src/features/oss/backend/use-operation-create.tsx b/rsconcept/frontend/src/features/oss/backend/use-create-operation.tsx similarity index 74% rename from rsconcept/frontend/src/features/oss/backend/use-operation-create.tsx rename to rsconcept/frontend/src/features/oss/backend/use-create-operation.tsx index c0be55f2..cb32bd89 100644 --- a/rsconcept/frontend/src/features/oss/backend/use-operation-create.tsx +++ b/rsconcept/frontend/src/features/oss/backend/use-create-operation.tsx @@ -5,14 +5,14 @@ import { useUpdateTimestamp } from '@/features/library/backend/use-update-timest import { KEYS } from '@/backend/configuration'; import { ossApi } from './api'; -import { type IOperationCreateDTO } from './types'; +import { type ICreateOperationDTO } from './types'; -export const useOperationCreate = () => { +export const useCreateOperation = () => { const client = useQueryClient(); const { updateTimestamp } = useUpdateTimestamp(); const mutation = useMutation({ mutationKey: [KEYS.global_mutation, ossApi.baseKey, 'operation-create'], - mutationFn: ossApi.operationCreate, + mutationFn: ossApi.createOperation, onSuccess: response => { client.setQueryData(ossApi.getOssQueryOptions({ itemID: response.oss.id }).queryKey, response.oss); updateTimestamp(response.oss.id); @@ -20,6 +20,6 @@ export const useOperationCreate = () => { onError: () => client.invalidateQueries() }); return { - operationCreate: (data: { itemID: number; data: IOperationCreateDTO }) => mutation.mutateAsync(data) + createOperation: (data: { itemID: number; data: ICreateOperationDTO }) => mutation.mutateAsync(data) }; }; diff --git a/rsconcept/frontend/src/features/oss/backend/use-operation-delete.tsx b/rsconcept/frontend/src/features/oss/backend/use-delete-operation.tsx similarity index 73% rename from rsconcept/frontend/src/features/oss/backend/use-operation-delete.tsx rename to rsconcept/frontend/src/features/oss/backend/use-delete-operation.tsx index 8f1da8d0..8755541f 100644 --- a/rsconcept/frontend/src/features/oss/backend/use-operation-delete.tsx +++ b/rsconcept/frontend/src/features/oss/backend/use-delete-operation.tsx @@ -3,13 +3,13 @@ import { useMutation, useQueryClient } from '@tanstack/react-query'; import { KEYS } from '@/backend/configuration'; import { ossApi } from './api'; -import { type IOperationDeleteDTO } from './types'; +import { type IDeleteOperationDTO } from './types'; -export const useOperationDelete = () => { +export const useDeleteOperation = () => { const client = useQueryClient(); const mutation = useMutation({ mutationKey: [KEYS.global_mutation, ossApi.baseKey, 'operation-delete'], - mutationFn: ossApi.operationDelete, + mutationFn: ossApi.deleteOperation, onSuccess: data => { client.setQueryData(ossApi.getOssQueryOptions({ itemID: data.id }).queryKey, data); return Promise.allSettled([ @@ -20,6 +20,6 @@ export const useOperationDelete = () => { onError: () => client.invalidateQueries() }); return { - operationDelete: (data: { itemID: number; data: IOperationDeleteDTO }) => mutation.mutateAsync(data) + deleteOperation: (data: { itemID: number; data: IDeleteOperationDTO }) => mutation.mutateAsync(data) }; }; diff --git a/rsconcept/frontend/src/features/oss/backend/use-operation-execute.tsx b/rsconcept/frontend/src/features/oss/backend/use-execute-operation.tsx similarity index 83% rename from rsconcept/frontend/src/features/oss/backend/use-operation-execute.tsx rename to rsconcept/frontend/src/features/oss/backend/use-execute-operation.tsx index 41333264..ba24ec35 100644 --- a/rsconcept/frontend/src/features/oss/backend/use-operation-execute.tsx +++ b/rsconcept/frontend/src/features/oss/backend/use-execute-operation.tsx @@ -5,11 +5,11 @@ import { KEYS } from '@/backend/configuration'; import { ossApi } from './api'; import { type ITargetOperation } from './types'; -export const useOperationExecute = () => { +export const useExecuteOperation = () => { const client = useQueryClient(); const mutation = useMutation({ mutationKey: [KEYS.global_mutation, ossApi.baseKey, 'operation-execute'], - mutationFn: ossApi.operationExecute, + mutationFn: ossApi.executeOperation, onSuccess: data => { client.setQueryData(ossApi.getOssQueryOptions({ itemID: data.id }).queryKey, data); return Promise.allSettled([ @@ -20,6 +20,6 @@ export const useOperationExecute = () => { onError: () => client.invalidateQueries() }); return { - operationExecute: (data: { itemID: number; data: ITargetOperation }) => mutation.mutateAsync(data) + executeOperation: (data: { itemID: number; data: ITargetOperation }) => mutation.mutateAsync(data) }; }; diff --git a/rsconcept/frontend/src/features/oss/backend/use-relocate-constituents.tsx b/rsconcept/frontend/src/features/oss/backend/use-relocate-constituents.tsx index fabf5e3d..edb809e2 100644 --- a/rsconcept/frontend/src/features/oss/backend/use-relocate-constituents.tsx +++ b/rsconcept/frontend/src/features/oss/backend/use-relocate-constituents.tsx @@ -3,7 +3,7 @@ import { useMutation, useQueryClient } from '@tanstack/react-query'; import { KEYS } from '@/backend/configuration'; import { ossApi } from './api'; -import { type ICstRelocateDTO } from './types'; +import { type IRelocateConstituentsDTO } from './types'; export const useRelocateConstituents = () => { const client = useQueryClient(); @@ -20,6 +20,6 @@ export const useRelocateConstituents = () => { onError: () => client.invalidateQueries() }); return { - relocateConstituents: (data: ICstRelocateDTO) => mutation.mutateAsync(data) + relocateConstituents: (data: IRelocateConstituentsDTO) => mutation.mutateAsync(data) }; }; diff --git a/rsconcept/frontend/src/features/oss/backend/use-input-update.tsx b/rsconcept/frontend/src/features/oss/backend/use-update-input.tsx similarity index 79% rename from rsconcept/frontend/src/features/oss/backend/use-input-update.tsx rename to rsconcept/frontend/src/features/oss/backend/use-update-input.tsx index c5e3450a..f172f668 100644 --- a/rsconcept/frontend/src/features/oss/backend/use-input-update.tsx +++ b/rsconcept/frontend/src/features/oss/backend/use-update-input.tsx @@ -3,13 +3,13 @@ import { useMutation, useQueryClient } from '@tanstack/react-query'; import { KEYS } from '@/backend/configuration'; import { ossApi } from './api'; -import { type IInputUpdateDTO } from './types'; +import { type IUpdateInputDTO } from './types'; -export const useInputUpdate = () => { +export const useUpdateInput = () => { const client = useQueryClient(); const mutation = useMutation({ mutationKey: [KEYS.global_mutation, ossApi.baseKey, 'input-update'], - mutationFn: ossApi.inputUpdate, + mutationFn: ossApi.updateInput, onSuccess: data => { client.setQueryData(ossApi.getOssQueryOptions({ itemID: data.id }).queryKey, data); return Promise.allSettled([ @@ -20,6 +20,6 @@ export const useInputUpdate = () => { onError: () => client.invalidateQueries() }); return { - inputUpdate: (data: { itemID: number; data: IInputUpdateDTO }) => mutation.mutateAsync(data) + updateInput: (data: { itemID: number; data: IUpdateInputDTO }) => mutation.mutateAsync(data) }; }; diff --git a/rsconcept/frontend/src/features/oss/backend/use-operation-update.tsx b/rsconcept/frontend/src/features/oss/backend/use-update-operation.tsx similarity index 82% rename from rsconcept/frontend/src/features/oss/backend/use-operation-update.tsx rename to rsconcept/frontend/src/features/oss/backend/use-update-operation.tsx index 86342e20..aad637ca 100644 --- a/rsconcept/frontend/src/features/oss/backend/use-operation-update.tsx +++ b/rsconcept/frontend/src/features/oss/backend/use-update-operation.tsx @@ -5,13 +5,13 @@ import { type ILibraryItem } from '@/features/library'; import { KEYS } from '@/backend/configuration'; import { ossApi } from './api'; -import { type IOperationUpdateDTO } from './types'; +import { type IUpdateOperationDTO } from './types'; -export const useOperationUpdate = () => { +export const useUpdateOperation = () => { const client = useQueryClient(); const mutation = useMutation({ mutationKey: [KEYS.global_mutation, ossApi.baseKey, 'operation-update'], - mutationFn: ossApi.operationUpdate, + mutationFn: ossApi.updateOperation, onSuccess: (data, variables) => { client.setQueryData(KEYS.composite.ossItem({ itemID: data.id }), data); const schemaID = data.operations.find(item => item.id === variables.data.target)?.result; @@ -32,6 +32,6 @@ export const useOperationUpdate = () => { onError: () => client.invalidateQueries() }); return { - operationUpdate: (data: { itemID: number; data: IOperationUpdateDTO }) => mutation.mutateAsync(data) + updateOperation: (data: { itemID: number; data: IUpdateOperationDTO }) => mutation.mutateAsync(data) }; }; diff --git a/rsconcept/frontend/src/features/oss/dialogs/dlg-change-input-schema.tsx b/rsconcept/frontend/src/features/oss/dialogs/dlg-change-input-schema.tsx index dc80328b..0356c106 100644 --- a/rsconcept/frontend/src/features/oss/dialogs/dlg-change-input-schema.tsx +++ b/rsconcept/frontend/src/features/oss/dialogs/dlg-change-input-schema.tsx @@ -13,8 +13,8 @@ import { Label } from '@/components/input'; import { ModalForm } from '@/components/modal'; import { useDialogsStore } from '@/stores/dialogs'; -import { type IInputUpdateDTO, type IOssLayout, schemaInputUpdate } from '../backend/types'; -import { useInputUpdate } from '../backend/use-input-update'; +import { type IOssLayout, type IUpdateInputDTO, schemaUpdateInput } from '../backend/types'; +import { useUpdateInput } from '../backend/use-update-input'; import { type IOperation, type IOperationSchema } from '../models/oss'; import { sortItemsForOSS } from '../models/oss-api'; @@ -26,10 +26,10 @@ export interface DlgChangeInputSchemaProps { export function DlgChangeInputSchema() { const { oss, target, layout } = useDialogsStore(state => state.props as DlgChangeInputSchemaProps); - const { inputUpdate } = useInputUpdate(); + const { updateInput: inputUpdate } = useUpdateInput(); - const { setValue, handleSubmit, control } = useForm({ - resolver: zodResolver(schemaInputUpdate), + const { setValue, handleSubmit, control } = useForm({ + resolver: zodResolver(schemaUpdateInput), defaultValues: { target: target.id, layout: layout, @@ -44,7 +44,7 @@ export function DlgChangeInputSchema() { return !oss.schemas.includes(item.id) || item.id === target.result; } - function onSubmit(data: IInputUpdateDTO) { + function onSubmit(data: IUpdateInputDTO) { return inputUpdate({ itemID: oss.id, data: data }); } diff --git a/rsconcept/frontend/src/features/oss/dialogs/dlg-create-operation/dlg-create-operation.tsx b/rsconcept/frontend/src/features/oss/dialogs/dlg-create-operation/dlg-create-operation.tsx index 7b0c9afc..84ef8bf0 100644 --- a/rsconcept/frontend/src/features/oss/dialogs/dlg-create-operation/dlg-create-operation.tsx +++ b/rsconcept/frontend/src/features/oss/dialogs/dlg-create-operation/dlg-create-operation.tsx @@ -10,8 +10,8 @@ import { ModalForm } from '@/components/modal'; import { TabLabel, TabList, TabPanel, Tabs } from '@/components/tabs'; import { useDialogsStore } from '@/stores/dialogs'; -import { type IOperationCreateDTO, type IOssLayout, OperationType, schemaOperationCreate } from '../../backend/types'; -import { useOperationCreate } from '../../backend/use-operation-create'; +import { type ICreateOperationDTO, type IOssLayout, OperationType, schemaCreateOperation } from '../../backend/types'; +import { useCreateOperation } from '../../backend/use-create-operation'; import { describeOperationType, labelOperationType } from '../../labels'; import { type IOperationSchema } from '../../models/oss'; import { calculateInsertPosition } from '../../models/oss-api'; @@ -35,14 +35,14 @@ export const TabID = { export type TabID = (typeof TabID)[keyof typeof TabID]; export function DlgCreateOperation() { - const { operationCreate } = useOperationCreate(); + const { createOperation: operationCreate } = useCreateOperation(); const { oss, layout, initialInputs, onCreate, defaultX, defaultY } = useDialogsStore( state => state.props as DlgCreateOperationProps ); - const methods = useForm({ - resolver: zodResolver(schemaOperationCreate), + const methods = useForm({ + resolver: zodResolver(schemaCreateOperation), defaultValues: { item_data: { operation_type: initialInputs.length === 0 ? OperationType.INPUT : OperationType.SYNTHESIS, @@ -64,7 +64,7 @@ export function DlgCreateOperation() { const [activeTab, setActiveTab] = useState(initialInputs.length === 0 ? TabID.INPUT : TabID.SYNTHESIS); const isValid = !!alias && !oss.operations.some(operation => operation.alias === alias); - function onSubmit(data: IOperationCreateDTO) { + function onSubmit(data: ICreateOperationDTO) { const target = calculateInsertPosition(oss, data.arguments, layout, { x: defaultX, y: defaultY diff --git a/rsconcept/frontend/src/features/oss/dialogs/dlg-create-operation/tab-input-operation.tsx b/rsconcept/frontend/src/features/oss/dialogs/dlg-create-operation/tab-input-operation.tsx index 7cdd76c4..58587266 100644 --- a/rsconcept/frontend/src/features/oss/dialogs/dlg-create-operation/tab-input-operation.tsx +++ b/rsconcept/frontend/src/features/oss/dialogs/dlg-create-operation/tab-input-operation.tsx @@ -11,7 +11,7 @@ import { IconReset } from '@/components/icons'; import { Checkbox, Label, TextArea, TextInput } from '@/components/input'; import { useDialogsStore } from '@/stores/dialogs'; -import { type IOperationCreateDTO } from '../../backend/types'; +import { type ICreateOperationDTO } from '../../backend/types'; import { sortItemsForOSS } from '../../models/oss-api'; import { type DlgCreateOperationProps } from './dlg-create-operation'; @@ -26,7 +26,7 @@ export function TabInputOperation() { control, setValue, formState: { errors } - } = useFormContext(); + } = useFormContext(); const createSchema = useWatch({ control, name: 'create_schema' }); function baseFilter(item: ILibraryItem) { diff --git a/rsconcept/frontend/src/features/oss/dialogs/dlg-create-operation/tab-synthesis-operation.tsx b/rsconcept/frontend/src/features/oss/dialogs/dlg-create-operation/tab-synthesis-operation.tsx index 6cac05f6..48162c96 100644 --- a/rsconcept/frontend/src/features/oss/dialogs/dlg-create-operation/tab-synthesis-operation.tsx +++ b/rsconcept/frontend/src/features/oss/dialogs/dlg-create-operation/tab-synthesis-operation.tsx @@ -3,7 +3,7 @@ import { Controller, useFormContext, useWatch } from 'react-hook-form'; import { Label, TextArea, TextInput } from '@/components/input'; import { useDialogsStore } from '@/stores/dialogs'; -import { type IOperationCreateDTO } from '../../backend/types'; +import { type ICreateOperationDTO } from '../../backend/types'; import { PickMultiOperation } from '../../components/pick-multi-operation'; import { type DlgCreateOperationProps } from './dlg-create-operation'; @@ -14,7 +14,7 @@ export function TabSynthesisOperation() { register, control, formState: { errors } - } = useFormContext(); + } = useFormContext(); const inputs = useWatch({ control, name: 'arguments' }); return ( diff --git a/rsconcept/frontend/src/features/oss/dialogs/dlg-delete-operation.tsx b/rsconcept/frontend/src/features/oss/dialogs/dlg-delete-operation.tsx index 5a16e9b6..406519d0 100644 --- a/rsconcept/frontend/src/features/oss/dialogs/dlg-delete-operation.tsx +++ b/rsconcept/frontend/src/features/oss/dialogs/dlg-delete-operation.tsx @@ -9,8 +9,8 @@ import { Checkbox, TextInput } from '@/components/input'; import { ModalForm } from '@/components/modal'; import { useDialogsStore } from '@/stores/dialogs'; -import { type IOperationDeleteDTO, type IOssLayout, schemaOperationDelete } from '../backend/types'; -import { useOperationDelete } from '../backend/use-operation-delete'; +import { type IDeleteOperationDTO, type IOssLayout, schemaDeleteOperation } from '../backend/types'; +import { useDeleteOperation } from '../backend/use-delete-operation'; import { type IOperation, type IOperationSchema } from '../models/oss'; export interface DlgDeleteOperationProps { @@ -21,10 +21,10 @@ export interface DlgDeleteOperationProps { export function DlgDeleteOperation() { const { oss, target, layout } = useDialogsStore(state => state.props as DlgDeleteOperationProps); - const { operationDelete } = useOperationDelete(); + const { deleteOperation: operationDelete } = useDeleteOperation(); - const { handleSubmit, control } = useForm({ - resolver: zodResolver(schemaOperationDelete), + const { handleSubmit, control } = useForm({ + resolver: zodResolver(schemaDeleteOperation), defaultValues: { target: target.id, layout: layout, @@ -33,7 +33,7 @@ export function DlgDeleteOperation() { } }); - function onSubmit(data: IOperationDeleteDTO) { + function onSubmit(data: IDeleteOperationDTO) { return operationDelete({ itemID: oss.id, data: data }); } diff --git a/rsconcept/frontend/src/features/oss/dialogs/dlg-edit-operation/dlg-edit-operation.tsx b/rsconcept/frontend/src/features/oss/dialogs/dlg-edit-operation/dlg-edit-operation.tsx index 95a242aa..3e32b549 100644 --- a/rsconcept/frontend/src/features/oss/dialogs/dlg-edit-operation/dlg-edit-operation.tsx +++ b/rsconcept/frontend/src/features/oss/dialogs/dlg-edit-operation/dlg-edit-operation.tsx @@ -11,8 +11,8 @@ import { ModalForm } from '@/components/modal'; import { TabLabel, TabList, TabPanel, Tabs } from '@/components/tabs'; import { useDialogsStore } from '@/stores/dialogs'; -import { type IOperationUpdateDTO, type IOssLayout, OperationType, schemaOperationUpdate } from '../../backend/types'; -import { useOperationUpdate } from '../../backend/use-operation-update'; +import { type IOssLayout, type IUpdateOperationDTO, OperationType, schemaUpdateOperation } from '../../backend/types'; +import { useUpdateOperation } from '../../backend/use-update-operation'; import { type IOperation, type IOperationSchema } from '../../models/oss'; import { TabArguments } from './tab-arguments'; @@ -34,10 +34,10 @@ export type TabID = (typeof TabID)[keyof typeof TabID]; export function DlgEditOperation() { const { oss, target, layout } = useDialogsStore(state => state.props as DlgEditOperationProps); - const { operationUpdate } = useOperationUpdate(); + const { updateOperation: operationUpdate } = useUpdateOperation(); - const methods = useForm({ - resolver: zodResolver(schemaOperationUpdate), + const methods = useForm({ + resolver: zodResolver(schemaUpdateOperation), defaultValues: { target: target.id, item_data: { @@ -56,7 +56,7 @@ export function DlgEditOperation() { }); const [activeTab, setActiveTab] = useState(TabID.CARD); - function onSubmit(data: IOperationUpdateDTO) { + function onSubmit(data: IUpdateOperationDTO) { return operationUpdate({ itemID: oss.id, data }); } diff --git a/rsconcept/frontend/src/features/oss/dialogs/dlg-edit-operation/tab-arguments.tsx b/rsconcept/frontend/src/features/oss/dialogs/dlg-edit-operation/tab-arguments.tsx index b626a8ea..3f5849fb 100644 --- a/rsconcept/frontend/src/features/oss/dialogs/dlg-edit-operation/tab-arguments.tsx +++ b/rsconcept/frontend/src/features/oss/dialogs/dlg-edit-operation/tab-arguments.tsx @@ -4,13 +4,13 @@ import { Controller, useFormContext } from 'react-hook-form'; import { Label } from '@/components/input'; import { useDialogsStore } from '@/stores/dialogs'; -import { type IOperationUpdateDTO } from '../../backend/types'; +import { type IUpdateOperationDTO } from '../../backend/types'; import { PickMultiOperation } from '../../components/pick-multi-operation'; import { type DlgEditOperationProps } from './dlg-edit-operation'; export function TabArguments() { - const { control, setValue } = useFormContext(); + const { control, setValue } = useFormContext(); const { oss, target } = useDialogsStore(state => state.props as DlgEditOperationProps); const potentialCycle = [target.id, ...oss.graph.expandAllOutputs([target.id])]; const filtered = oss.operations.filter(item => !potentialCycle.includes(item.id)); diff --git a/rsconcept/frontend/src/features/oss/dialogs/dlg-edit-operation/tab-operation.tsx b/rsconcept/frontend/src/features/oss/dialogs/dlg-edit-operation/tab-operation.tsx index cf1226c0..480f4cf1 100644 --- a/rsconcept/frontend/src/features/oss/dialogs/dlg-edit-operation/tab-operation.tsx +++ b/rsconcept/frontend/src/features/oss/dialogs/dlg-edit-operation/tab-operation.tsx @@ -2,13 +2,13 @@ import { useFormContext } from 'react-hook-form'; import { TextArea, TextInput } from '@/components/input'; -import { type IOperationUpdateDTO } from '../../backend/types'; +import { type IUpdateOperationDTO } from '../../backend/types'; export function TabOperation() { const { register, formState: { errors } - } = useFormContext(); + } = useFormContext(); return (
diff --git a/rsconcept/frontend/src/features/oss/dialogs/dlg-edit-operation/tab-synthesis.tsx b/rsconcept/frontend/src/features/oss/dialogs/dlg-edit-operation/tab-synthesis.tsx index bef0c84b..5cf97c4a 100644 --- a/rsconcept/frontend/src/features/oss/dialogs/dlg-edit-operation/tab-synthesis.tsx +++ b/rsconcept/frontend/src/features/oss/dialogs/dlg-edit-operation/tab-synthesis.tsx @@ -8,14 +8,14 @@ import { PickSubstitutions } from '@/features/rsform/components'; import { TextArea } from '@/components/input'; import { useDialogsStore } from '@/stores/dialogs'; -import { type IOperationUpdateDTO } from '../../backend/types'; +import { type IUpdateOperationDTO } from '../../backend/types'; import { SubstitutionValidator } from '../../models/oss-api'; import { type DlgEditOperationProps } from './dlg-edit-operation'; export function TabSynthesis() { const { oss } = useDialogsStore(state => state.props as DlgEditOperationProps); - const { control } = useFormContext(); + const { control } = useFormContext(); const inputs = useWatch({ control, name: 'arguments' }); const substitutions = useWatch({ control, name: 'substitutions' }); diff --git a/rsconcept/frontend/src/features/oss/dialogs/dlg-relocate-constituents.tsx b/rsconcept/frontend/src/features/oss/dialogs/dlg-relocate-constituents.tsx index dc96784f..f525668d 100644 --- a/rsconcept/frontend/src/features/oss/dialogs/dlg-relocate-constituents.tsx +++ b/rsconcept/frontend/src/features/oss/dialogs/dlg-relocate-constituents.tsx @@ -16,7 +16,7 @@ import { Loader } from '@/components/loader'; import { ModalForm } from '@/components/modal'; import { useDialogsStore } from '@/stores/dialogs'; -import { type ICstRelocateDTO, type IOssLayout, schemaCstRelocate } from '../backend/types'; +import { type IOssLayout, type IRelocateConstituentsDTO, schemaRelocateConstituents } from '../backend/types'; import { useRelocateConstituents } from '../backend/use-relocate-constituents'; import { useUpdateLayout } from '../backend/use-update-layout'; import { IconRelocationUp } from '../components/icon-relocation-up'; @@ -40,8 +40,8 @@ export function DlgRelocateConstituents() { control, setValue, formState: { isValid } - } = useForm({ - resolver: zodResolver(schemaCstRelocate), + } = useForm({ + resolver: zodResolver(schemaRelocateConstituents), defaultValues: { items: [] }, @@ -97,7 +97,7 @@ export function DlgRelocateConstituents() { setValue('items', []); } - function onSubmit(data: ICstRelocateDTO) { + function onSubmit(data: IRelocateConstituentsDTO) { if (!layout || JSON.stringify(layout) === JSON.stringify(oss.layout)) { return relocateConstituents(data); } else { diff --git a/rsconcept/frontend/src/features/oss/pages/oss-page/editor-oss-graph/node-context-menu.tsx b/rsconcept/frontend/src/features/oss/pages/oss-page/editor-oss-graph/node-context-menu.tsx index f29a9474..76b15c87 100644 --- a/rsconcept/frontend/src/features/oss/pages/oss-page/editor-oss-graph/node-context-menu.tsx +++ b/rsconcept/frontend/src/features/oss/pages/oss-page/editor-oss-graph/node-context-menu.tsx @@ -5,8 +5,8 @@ import { toast } from 'react-toastify'; import { urls, useConceptNavigation } from '@/app'; import { useLibrary } from '@/features/library/backend/use-library'; -import { useInputCreate } from '@/features/oss/backend/use-input-create'; -import { useOperationExecute } from '@/features/oss/backend/use-operation-execute'; +import { useCreateInput } from '@/features/oss/backend/use-create-input'; +import { useExecuteOperation } from '@/features/oss/backend/use-execute-operation'; import { Dropdown, DropdownButton } from '@/components/dropdown'; import { @@ -51,8 +51,8 @@ export function NodeContextMenu({ isOpen, operation, cursorX, cursorY, onHide }: const isProcessing = useMutatingOss(); const getLayout = useGetLayout(); - const { inputCreate } = useInputCreate(); - const { operationExecute } = useOperationExecute(); + const { createInput: inputCreate } = useCreateInput(); + const { executeOperation: operationExecute } = useExecuteOperation(); const showEditInput = useDialogsStore(state => state.showChangeInputSchema); const showRelocateConstituents = useDialogsStore(state => state.showRelocateConstituents); diff --git a/rsconcept/frontend/src/features/oss/pages/oss-page/editor-oss-graph/toolbar-oss-graph.tsx b/rsconcept/frontend/src/features/oss/pages/oss-page/editor-oss-graph/toolbar-oss-graph.tsx index 467080d3..acb61422 100644 --- a/rsconcept/frontend/src/features/oss/pages/oss-page/editor-oss-graph/toolbar-oss-graph.tsx +++ b/rsconcept/frontend/src/features/oss/pages/oss-page/editor-oss-graph/toolbar-oss-graph.tsx @@ -4,7 +4,7 @@ import { useReactFlow } from 'reactflow'; import { HelpTopic } from '@/features/help'; import { BadgeHelp } from '@/features/help/components'; -import { useOperationExecute } from '@/features/oss/backend/use-operation-execute'; +import { useExecuteOperation } from '@/features/oss/backend/use-execute-operation'; import { useUpdateLayout } from '@/features/oss/backend/use-update-layout'; import { MiniButton } from '@/components/control'; @@ -63,7 +63,7 @@ export function ToolbarOssGraph({ const toggleEdgeStraight = useOSSGraphStore(state => state.toggleEdgeStraight); const { updateLayout: updatePositions } = useUpdateLayout(); - const { operationExecute } = useOperationExecute(); + const { executeOperation: operationExecute } = useExecuteOperation(); const showEditOperation = useDialogsStore(state => state.showEditOperation); diff --git a/rsconcept/frontend/src/features/rsform/backend/api.ts b/rsconcept/frontend/src/features/rsform/backend/api.ts index 42a12e63..6abb36fc 100644 --- a/rsconcept/frontend/src/features/rsform/backend/api.ts +++ b/rsconcept/frontend/src/features/rsform/backend/api.ts @@ -7,20 +7,20 @@ import { infoMsg } from '@/utils/labels'; import { type ICheckConstituentaDTO, type IConstituentaBasicsDTO, + type IConstituentaCreatedResponse, type IConstituentaList, - type ICstCreatedResponse, - type ICstCreateDTO, - type ICstMoveDTO, - type ICstRenameDTO, - type ICstSubstitutionsDTO, - type ICstUpdateDTO, + type ICreateConstituentaDTO, type IExpressionParseDTO, type IInlineSynthesisDTO, + type IMoveConstituentsDTO, type IProduceStructureResponse, + type IRenameConstituentaDTO, type IRSFormDTO, type IRSFormUploadDTO, + type ISubstitutionsDTO, + type IUpdateConstituentaDTO, schemaConstituentaBasics, - schemaCstCreatedResponse, + schemaConstituentaCreatedResponse, schemaExpressionParse, schemaProduceStructureResponse, schemaRSForm @@ -64,17 +64,17 @@ export const rsformsApi = { } }), - cstCreate: ({ itemID, data }: { itemID: number; data: ICstCreateDTO }) => - axiosPost({ - schema: schemaCstCreatedResponse, + createConstituenta: ({ itemID, data }: { itemID: number; data: ICreateConstituentaDTO }) => + axiosPost({ + schema: schemaConstituentaCreatedResponse, endpoint: `/api/rsforms/${itemID}/create-cst`, request: { data: data, successMessage: response => infoMsg.newConstituent(response.new_cst.alias) } }), - cstUpdate: ({ itemID, data }: { itemID: number; data: ICstUpdateDTO }) => - axiosPatch({ + updateConstituenta: ({ itemID, data }: { itemID: number; data: IUpdateConstituentaDTO }) => + axiosPatch({ schema: schemaConstituentaBasics, endpoint: `/api/rsforms/${itemID}/update-cst`, request: { @@ -82,7 +82,7 @@ export const rsformsApi = { successMessage: infoMsg.changesSaved } }), - cstDelete: ({ itemID, data }: { itemID: number; data: IConstituentaList }) => + deleteConstituents: ({ itemID, data }: { itemID: number; data: IConstituentaList }) => axiosPatch({ schema: schemaRSForm, endpoint: `/api/rsforms/${itemID}/delete-multiple-cst`, @@ -91,17 +91,17 @@ export const rsformsApi = { successMessage: infoMsg.constituentsDestroyed(data.items.length) } }), - cstRename: ({ itemID, data }: { itemID: number; data: ICstRenameDTO }) => - axiosPatch({ - schema: schemaCstCreatedResponse, + renameConstituenta: ({ itemID, data }: { itemID: number; data: IRenameConstituentaDTO }) => + axiosPatch({ + schema: schemaConstituentaCreatedResponse, endpoint: `/api/rsforms/${itemID}/rename-cst`, request: { data: data, successMessage: infoMsg.changesSaved } }), - cstSubstitute: ({ itemID, data }: { itemID: number; data: ICstSubstitutionsDTO }) => - axiosPatch({ + substituteConstituents: ({ itemID, data }: { itemID: number; data: ISubstitutionsDTO }) => + axiosPatch({ schema: schemaRSForm, endpoint: `/api/rsforms/${itemID}/substitute`, request: { @@ -109,8 +109,8 @@ export const rsformsApi = { successMessage: infoMsg.substituteSingle } }), - cstMove: ({ itemID, data }: { itemID: number; data: ICstMoveDTO }) => - axiosPatch({ + moveConstituents: ({ itemID, data }: { itemID: number; data: IMoveConstituentsDTO }) => + axiosPatch({ schema: schemaRSForm, endpoint: `/api/rsforms/${itemID}/move-cst`, request: { data: data } diff --git a/rsconcept/frontend/src/features/rsform/backend/types.ts b/rsconcept/frontend/src/features/rsform/backend/types.ts index 69980365..ee6061c0 100644 --- a/rsconcept/frontend/src/features/rsform/backend/types.ts +++ b/rsconcept/frontend/src/features/rsform/backend/types.ts @@ -56,19 +56,19 @@ export interface IRSFormUploadDTO { } /** Represents {@link IConstituenta} data, used in creation process. */ -export type ICstCreateDTO = z.infer; +export type ICreateConstituentaDTO = z.infer; /** Represents data response when creating {@link IConstituenta}. */ -export type ICstCreatedResponse = z.infer; +export type IConstituentaCreatedResponse = z.infer; /** Represents data, used in updating persistent attributes in {@link IConstituenta}. */ -export type ICstUpdateDTO = z.infer; +export type IUpdateConstituentaDTO = z.infer; /** Represents data, used in renaming {@link IConstituenta}. */ -export type ICstRenameDTO = z.infer; +export type IRenameConstituentaDTO = z.infer; /** Represents data, used in ordering a list of {@link IConstituenta}. */ -export interface ICstMoveDTO { +export interface IMoveConstituentsDTO { items: number[]; move_to: number; // Note: 0-base index } @@ -77,7 +77,7 @@ export interface ICstMoveDTO { export type IProduceStructureResponse = z.infer; /** Represents data, used in merging single {@link IConstituenta}. */ -export type ICstSubstitute = z.infer; +export type ISubstituteConstituents = z.infer; /** Represents input data for inline synthesis. */ export type IInlineSynthesisDTO = z.infer; @@ -90,7 +90,7 @@ export interface ICheckConstituentaDTO { } /** Represents data, used in merging multiple {@link IConstituenta}. */ -export type ICstSubstitutionsDTO = z.infer; +export type ISubstitutionsDTO = z.infer; /** * Represents Constituenta list. @@ -322,7 +322,7 @@ export const schemaVersionCreatedResponse = z.strictObject({ schema: schemaRSForm }); -export const schemaCstCreate = schemaConstituentaBasics +export const schemaCreateConstituenta = schemaConstituentaBasics .pick({ cst_type: true, alias: true, @@ -336,12 +336,12 @@ export const schemaCstCreate = schemaConstituentaBasics insert_after: z.number().nullable() }); -export const schemaCstCreatedResponse = z.strictObject({ +export const schemaConstituentaCreatedResponse = z.strictObject({ new_cst: schemaConstituentaBasics, schema: schemaRSForm }); -export const schemaCstUpdate = z.strictObject({ +export const schemaUpdateConstituenta = z.strictObject({ target: z.number(), item_data: z.strictObject({ convention: z.string().optional(), @@ -352,7 +352,7 @@ export const schemaCstUpdate = z.strictObject({ }) }); -export const schemaCstRename = z.strictObject({ +export const schemaRenameConstituenta = z.strictObject({ target: z.number(), alias: z.string(), cst_type: schemaCstType @@ -363,20 +363,20 @@ export const schemaProduceStructureResponse = z.strictObject({ schema: schemaRSForm }); -export const schemaCstSubstitute = z.strictObject({ +export const schemaSubstituteConstituents = z.strictObject({ original: z.number(), substitution: z.number() }); -export const schemaCstSubstitutions = z.strictObject({ - substitutions: z.array(schemaCstSubstitute).min(1, { message: errorMsg.emptySubstitutions }) +export const schemaSubstitutions = z.strictObject({ + substitutions: z.array(schemaSubstituteConstituents).min(1, { message: errorMsg.emptySubstitutions }) }); export const schemaInlineSynthesis = z.strictObject({ receiver: z.number(), source: z.number().nullable(), items: z.array(z.number()), - substitutions: z.array(schemaCstSubstitute) + substitutions: z.array(schemaSubstituteConstituents) }); export const schemaRSErrorDescription = z.strictObject({ diff --git a/rsconcept/frontend/src/features/rsform/backend/use-cst-create.tsx b/rsconcept/frontend/src/features/rsform/backend/use-create-constituenta.tsx similarity index 82% rename from rsconcept/frontend/src/features/rsform/backend/use-cst-create.tsx rename to rsconcept/frontend/src/features/rsform/backend/use-create-constituenta.tsx index 55eaef03..48cb7a5f 100644 --- a/rsconcept/frontend/src/features/rsform/backend/use-cst-create.tsx +++ b/rsconcept/frontend/src/features/rsform/backend/use-create-constituenta.tsx @@ -5,14 +5,14 @@ import { useUpdateTimestamp } from '@/features/library/backend/use-update-timest import { KEYS } from '@/backend/configuration'; import { rsformsApi } from './api'; -import { type ICstCreateDTO } from './types'; +import { type ICreateConstituentaDTO } from './types'; -export const useCstCreate = () => { +export const useCreateConstituenta = () => { const client = useQueryClient(); const { updateTimestamp } = useUpdateTimestamp(); const mutation = useMutation({ mutationKey: [KEYS.global_mutation, rsformsApi.baseKey, 'create-cst'], - mutationFn: rsformsApi.cstCreate, + mutationFn: rsformsApi.createConstituenta, onSuccess: data => { client.setQueryData(rsformsApi.getRSFormQueryOptions({ itemID: data.schema.id }).queryKey, data.schema); updateTimestamp(data.schema.id); @@ -28,7 +28,7 @@ export const useCstCreate = () => { onError: () => client.invalidateQueries() }); return { - cstCreate: (data: { itemID: number; data: ICstCreateDTO }) => + createConstituenta: (data: { itemID: number; data: ICreateConstituentaDTO }) => mutation.mutateAsync(data).then(response => response.new_cst) }; }; diff --git a/rsconcept/frontend/src/features/rsform/backend/use-cst-delete.tsx b/rsconcept/frontend/src/features/rsform/backend/use-delete-constituents.tsx similarity index 83% rename from rsconcept/frontend/src/features/rsform/backend/use-cst-delete.tsx rename to rsconcept/frontend/src/features/rsform/backend/use-delete-constituents.tsx index 7a2ec0e3..0d504d63 100644 --- a/rsconcept/frontend/src/features/rsform/backend/use-cst-delete.tsx +++ b/rsconcept/frontend/src/features/rsform/backend/use-delete-constituents.tsx @@ -7,12 +7,12 @@ import { KEYS } from '@/backend/configuration'; import { rsformsApi } from './api'; import { type IConstituentaList } from './types'; -export const useCstDelete = () => { +export const useDeleteConstituents = () => { const client = useQueryClient(); const { updateTimestamp } = useUpdateTimestamp(); const mutation = useMutation({ mutationKey: [KEYS.global_mutation, rsformsApi.baseKey, 'delete-multiple-cst'], - mutationFn: rsformsApi.cstDelete, + mutationFn: rsformsApi.deleteConstituents, onSuccess: data => { client.setQueryData(rsformsApi.getRSFormQueryOptions({ itemID: data.id }).queryKey, data); updateTimestamp(data.id); @@ -28,6 +28,6 @@ export const useCstDelete = () => { onError: () => client.invalidateQueries() }); return { - cstDelete: (data: { itemID: number; data: IConstituentaList }) => mutation.mutateAsync(data) + deleteConstituents: (data: { itemID: number; data: IConstituentaList }) => mutation.mutateAsync(data) }; }; diff --git a/rsconcept/frontend/src/features/rsform/backend/use-cst-move.tsx b/rsconcept/frontend/src/features/rsform/backend/use-move-constituents.tsx similarity index 72% rename from rsconcept/frontend/src/features/rsform/backend/use-cst-move.tsx rename to rsconcept/frontend/src/features/rsform/backend/use-move-constituents.tsx index faa06d68..27cae747 100644 --- a/rsconcept/frontend/src/features/rsform/backend/use-cst-move.tsx +++ b/rsconcept/frontend/src/features/rsform/backend/use-move-constituents.tsx @@ -5,14 +5,14 @@ import { useUpdateTimestamp } from '@/features/library/backend/use-update-timest import { KEYS } from '@/backend/configuration'; import { rsformsApi } from './api'; -import { type ICstMoveDTO } from './types'; +import { type IMoveConstituentsDTO } from './types'; -export const useCstMove = () => { +export const useMoveConstituents = () => { const client = useQueryClient(); const { updateTimestamp } = useUpdateTimestamp(); const mutation = useMutation({ mutationKey: [KEYS.global_mutation, rsformsApi.baseKey, 'move-cst'], - mutationFn: rsformsApi.cstMove, + mutationFn: rsformsApi.moveConstituents, onSuccess: data => { client.setQueryData(rsformsApi.getRSFormQueryOptions({ itemID: data.id }).queryKey, data); updateTimestamp(data.id); @@ -20,6 +20,6 @@ export const useCstMove = () => { onError: () => client.invalidateQueries() }); return { - cstMove: (data: { itemID: number; data: ICstMoveDTO }) => mutation.mutateAsync(data) + moveConstituents: (data: { itemID: number; data: IMoveConstituentsDTO }) => mutation.mutateAsync(data) }; }; diff --git a/rsconcept/frontend/src/features/rsform/backend/use-cst-rename.tsx b/rsconcept/frontend/src/features/rsform/backend/use-rename-constituenta.tsx similarity index 79% rename from rsconcept/frontend/src/features/rsform/backend/use-cst-rename.tsx rename to rsconcept/frontend/src/features/rsform/backend/use-rename-constituenta.tsx index d5779481..1dfd6d8b 100644 --- a/rsconcept/frontend/src/features/rsform/backend/use-cst-rename.tsx +++ b/rsconcept/frontend/src/features/rsform/backend/use-rename-constituenta.tsx @@ -5,14 +5,14 @@ import { useUpdateTimestamp } from '@/features/library/backend/use-update-timest import { KEYS } from '@/backend/configuration'; import { rsformsApi } from './api'; -import { type ICstRenameDTO } from './types'; +import { type IRenameConstituentaDTO } from './types'; -export const useCstRename = () => { +export const useRenameConstituenta = () => { const client = useQueryClient(); const { updateTimestamp } = useUpdateTimestamp(); const mutation = useMutation({ mutationKey: [KEYS.global_mutation, rsformsApi.baseKey, 'rename-cst'], - mutationFn: rsformsApi.cstRename, + mutationFn: rsformsApi.renameConstituenta, onSuccess: data => { client.setQueryData(rsformsApi.getRSFormQueryOptions({ itemID: data.schema.id }).queryKey, data.schema); updateTimestamp(data.schema.id); @@ -28,6 +28,6 @@ export const useCstRename = () => { onError: () => client.invalidateQueries() }); return { - cstRename: (data: { itemID: number; data: ICstRenameDTO }) => mutation.mutateAsync(data) + renameConstituenta: (data: { itemID: number; data: IRenameConstituentaDTO }) => mutation.mutateAsync(data) }; }; diff --git a/rsconcept/frontend/src/features/rsform/backend/use-cst-substitute.tsx b/rsconcept/frontend/src/features/rsform/backend/use-substitute-constituents.tsx similarity index 78% rename from rsconcept/frontend/src/features/rsform/backend/use-cst-substitute.tsx rename to rsconcept/frontend/src/features/rsform/backend/use-substitute-constituents.tsx index 0eab85af..8128357b 100644 --- a/rsconcept/frontend/src/features/rsform/backend/use-cst-substitute.tsx +++ b/rsconcept/frontend/src/features/rsform/backend/use-substitute-constituents.tsx @@ -5,14 +5,14 @@ import { useUpdateTimestamp } from '@/features/library/backend/use-update-timest import { KEYS } from '@/backend/configuration'; import { rsformsApi } from './api'; -import { type ICstSubstitutionsDTO } from './types'; +import { type ISubstitutionsDTO } from './types'; -export const useCstSubstitute = () => { +export const useSubstituteConstituents = () => { const client = useQueryClient(); const { updateTimestamp } = useUpdateTimestamp(); const mutation = useMutation({ mutationKey: [KEYS.global_mutation, rsformsApi.baseKey, 'substitute-cst'], - mutationFn: rsformsApi.cstSubstitute, + mutationFn: rsformsApi.substituteConstituents, onSuccess: data => { client.setQueryData(rsformsApi.getRSFormQueryOptions({ itemID: data.id }).queryKey, data); updateTimestamp(data.id); @@ -28,6 +28,6 @@ export const useCstSubstitute = () => { onError: () => client.invalidateQueries() }); return { - cstSubstitute: (data: { itemID: number; data: ICstSubstitutionsDTO }) => mutation.mutateAsync(data) + substituteConstituents: (data: { itemID: number; data: ISubstitutionsDTO }) => mutation.mutateAsync(data) }; }; diff --git a/rsconcept/frontend/src/features/rsform/backend/use-cst-update.tsx b/rsconcept/frontend/src/features/rsform/backend/use-update-constituenta.tsx similarity index 74% rename from rsconcept/frontend/src/features/rsform/backend/use-cst-update.tsx rename to rsconcept/frontend/src/features/rsform/backend/use-update-constituenta.tsx index 5421a4b6..f3bb6738 100644 --- a/rsconcept/frontend/src/features/rsform/backend/use-cst-update.tsx +++ b/rsconcept/frontend/src/features/rsform/backend/use-update-constituenta.tsx @@ -5,14 +5,14 @@ import { useUpdateTimestamp } from '@/features/library/backend/use-update-timest import { KEYS } from '@/backend/configuration'; import { rsformsApi } from './api'; -import { type ICstUpdateDTO } from './types'; +import { type IUpdateConstituentaDTO } from './types'; -export const useCstUpdate = () => { +export const useUpdateConstituenta = () => { const client = useQueryClient(); const { updateTimestamp } = useUpdateTimestamp(); const mutation = useMutation({ mutationKey: [KEYS.global_mutation, rsformsApi.baseKey, 'update-cst'], - mutationFn: rsformsApi.cstUpdate, + mutationFn: rsformsApi.updateConstituenta, onSuccess: (_, variables) => { updateTimestamp(variables.itemID); @@ -24,6 +24,6 @@ export const useCstUpdate = () => { onError: () => client.invalidateQueries() }); return { - cstUpdate: (data: { itemID: number; data: ICstUpdateDTO }) => mutation.mutateAsync(data) + updateConstituenta: (data: { itemID: number; data: IUpdateConstituentaDTO }) => mutation.mutateAsync(data) }; }; diff --git a/rsconcept/frontend/src/features/rsform/components/pick-substitutions.tsx b/rsconcept/frontend/src/features/rsform/components/pick-substitutions.tsx index c465abf6..fb01e2c2 100644 --- a/rsconcept/frontend/src/features/rsform/components/pick-substitutions.tsx +++ b/rsconcept/frontend/src/features/rsform/components/pick-substitutions.tsx @@ -14,7 +14,7 @@ import { cn } from '@/components/utils'; import { NoData } from '@/components/view'; import { errorMsg } from '@/utils/labels'; -import { type ICstSubstitute } from '../backend/types'; +import { type ISubstituteConstituents } from '../backend/types'; import { type IConstituenta, type IRSForm } from '../models/rsform'; import { BadgeConstituenta } from './badge-constituenta'; @@ -29,10 +29,10 @@ interface IMultiSubstitution { } interface PickSubstitutionsProps extends Styling { - value: ICstSubstitute[]; - onChange: (newValue: ICstSubstitute[]) => void; + value: ISubstituteConstituents[]; + onChange: (newValue: ISubstituteConstituents[]) => void; - suggestions?: ICstSubstitute[]; + suggestions?: ISubstituteConstituents[]; rows?: number; allowSelfSubstitution?: boolean; @@ -75,7 +75,7 @@ export function PickSubstitutions({ const [deleteRight, setDeleteRight] = useState(true); const toggleDelete = () => setDeleteRight(prev => !prev); - const [ignores, setIgnores] = useState([]); + const [ignores, setIgnores] = useState([]); const filteredSuggestions = suggestions?.filter( item => !ignores.find(ignore => ignore.original === item.original && ignore.substitution === item.substitution) @@ -122,7 +122,7 @@ export function PickSubstitutions({ if (!leftCst || !rightCst) { return; } - const newSubstitution: ICstSubstitute = { + const newSubstitution: ISubstituteConstituents = { original: deleteRight ? rightCst.id : leftCst.id, substitution: deleteRight ? leftCst.id : rightCst.id }; diff --git a/rsconcept/frontend/src/features/rsform/dialogs/dlg-create-cst/dlg-create-cst.tsx b/rsconcept/frontend/src/features/rsform/dialogs/dlg-create-cst/dlg-create-cst.tsx index 7c47c153..2debf6db 100644 --- a/rsconcept/frontend/src/features/rsform/dialogs/dlg-create-cst/dlg-create-cst.tsx +++ b/rsconcept/frontend/src/features/rsform/dialogs/dlg-create-cst/dlg-create-cst.tsx @@ -7,32 +7,36 @@ import { ModalForm } from '@/components/modal'; import { useDialogsStore } from '@/stores/dialogs'; import { errorMsg } from '@/utils/labels'; -import { type IConstituentaBasicsDTO, type ICstCreateDTO, schemaCstCreate } from '../../backend/types'; -import { useCstCreate } from '../../backend/use-cst-create'; +import { + type IConstituentaBasicsDTO, + type ICreateConstituentaDTO, + schemaCreateConstituenta +} from '../../backend/types'; +import { useCreateConstituenta } from '../../backend/use-create-constituenta'; import { type IRSForm } from '../../models/rsform'; import { validateNewAlias } from '../../models/rsform-api'; import { FormCreateCst } from './form-create-cst'; export interface DlgCreateCstProps { - initial: ICstCreateDTO; + initial: ICreateConstituentaDTO; schema: IRSForm; onCreate: (data: IConstituentaBasicsDTO) => void; } export function DlgCreateCst() { const { initial, schema, onCreate } = useDialogsStore(state => state.props as DlgCreateCstProps); - const { cstCreate } = useCstCreate(); + const { createConstituenta: cstCreate } = useCreateConstituenta(); - const methods = useForm({ - resolver: zodResolver(schemaCstCreate), + const methods = useForm({ + resolver: zodResolver(schemaCreateConstituenta), defaultValues: { ...initial } }); const alias = useWatch({ control: methods.control, name: 'alias' }); const cst_type = useWatch({ control: methods.control, name: 'cst_type' }); const isValid = validateNewAlias(alias, cst_type, schema); - function onSubmit(data: ICstCreateDTO) { + function onSubmit(data: ICreateConstituentaDTO) { return cstCreate({ itemID: schema.id, data }).then(onCreate); } diff --git a/rsconcept/frontend/src/features/rsform/dialogs/dlg-create-cst/form-create-cst.tsx b/rsconcept/frontend/src/features/rsform/dialogs/dlg-create-cst/form-create-cst.tsx index 82bf077a..b22a9b18 100644 --- a/rsconcept/frontend/src/features/rsform/dialogs/dlg-create-cst/form-create-cst.tsx +++ b/rsconcept/frontend/src/features/rsform/dialogs/dlg-create-cst/form-create-cst.tsx @@ -8,7 +8,7 @@ import { BadgeHelp } from '@/features/help/components'; import { TextArea, TextInput } from '@/components/input'; -import { CstType, type ICstCreateDTO } from '../../backend/types'; +import { CstType, type ICreateConstituentaDTO } from '../../backend/types'; import { RSInput } from '../../components/rs-input'; import { SelectCstType } from '../../components/select-cst-type'; import { type IRSForm } from '../../models/rsform'; @@ -24,7 +24,7 @@ export function FormCreateCst({ schema }: FormCreateCstProps) { register, control, formState: { errors } - } = useFormContext(); + } = useFormContext(); const [forceComment, setForceComment] = useState(false); const cst_type = useWatch({ control, name: 'cst_type' }); diff --git a/rsconcept/frontend/src/features/rsform/dialogs/dlg-cst-template/dlg-cst-template.tsx b/rsconcept/frontend/src/features/rsform/dialogs/dlg-cst-template/dlg-cst-template.tsx index 330c6667..e77558f3 100644 --- a/rsconcept/frontend/src/features/rsform/dialogs/dlg-cst-template/dlg-cst-template.tsx +++ b/rsconcept/frontend/src/features/rsform/dialogs/dlg-cst-template/dlg-cst-template.tsx @@ -11,8 +11,13 @@ import { ModalForm } from '@/components/modal'; import { TabLabel, TabList, TabPanel, Tabs } from '@/components/tabs'; import { useDialogsStore } from '@/stores/dialogs'; -import { CstType, type IConstituentaBasicsDTO, type ICstCreateDTO, schemaCstCreate } from '../../backend/types'; -import { useCstCreate } from '../../backend/use-cst-create'; +import { + CstType, + type IConstituentaBasicsDTO, + type ICreateConstituentaDTO, + schemaCreateConstituenta +} from '../../backend/types'; +import { useCreateConstituenta } from '../../backend/use-create-constituenta'; import { type IRSForm } from '../../models/rsform'; import { generateAlias, validateNewAlias } from '../../models/rsform-api'; import { FormCreateCst } from '../dlg-create-cst/form-create-cst'; @@ -36,10 +41,10 @@ export type TabID = (typeof TabID)[keyof typeof TabID]; export function DlgCstTemplate() { const { schema, onCreate, insertAfter } = useDialogsStore(state => state.props as DlgCstTemplateProps); - const { cstCreate } = useCstCreate(); + const { createConstituenta: cstCreate } = useCreateConstituenta(); - const methods = useForm({ - resolver: zodResolver(schemaCstCreate), + const methods = useForm({ + resolver: zodResolver(schemaCreateConstituenta), defaultValues: { cst_type: CstType.TERM, insert_after: insertAfter ?? null, @@ -57,7 +62,7 @@ export function DlgCstTemplate() { const [activeTab, setActiveTab] = useState(TabID.TEMPLATE); - function onSubmit(data: ICstCreateDTO) { + function onSubmit(data: ICreateConstituentaDTO) { return cstCreate({ itemID: schema.id, data }).then(onCreate); } diff --git a/rsconcept/frontend/src/features/rsform/dialogs/dlg-cst-template/tab-arguments.tsx b/rsconcept/frontend/src/features/rsform/dialogs/dlg-cst-template/tab-arguments.tsx index e04b1404..b48ecb96 100644 --- a/rsconcept/frontend/src/features/rsform/dialogs/dlg-cst-template/tab-arguments.tsx +++ b/rsconcept/frontend/src/features/rsform/dialogs/dlg-cst-template/tab-arguments.tsx @@ -10,7 +10,7 @@ import { IconAccept, IconRemove, IconReset } from '@/components/icons'; import { NoData } from '@/components/view'; import { useDialogsStore } from '@/stores/dialogs'; -import { type ICstCreateDTO } from '../../backend/types'; +import { type ICreateConstituentaDTO } from '../../backend/types'; import { PickConstituenta } from '../../components/pick-constituenta'; import { RSInput } from '../../components/rs-input'; import { type IConstituenta } from '../../models/rsform'; @@ -23,7 +23,7 @@ const argumentsHelper = createColumnHelper(); export function TabArguments() { const { schema } = useDialogsStore(state => state.props as DlgCstTemplateProps); - const { control } = useFormContext(); + const { control } = useFormContext(); const { args, onChangeArguments } = useTemplateContext(); const definition = useWatch({ control, name: 'definition_formal' }); diff --git a/rsconcept/frontend/src/features/rsform/dialogs/dlg-cst-template/template-state.tsx b/rsconcept/frontend/src/features/rsform/dialogs/dlg-cst-template/template-state.tsx index 0332e436..e63d31db 100644 --- a/rsconcept/frontend/src/features/rsform/dialogs/dlg-cst-template/template-state.tsx +++ b/rsconcept/frontend/src/features/rsform/dialogs/dlg-cst-template/template-state.tsx @@ -5,7 +5,7 @@ import { useFormContext } from 'react-hook-form'; import { useDialogsStore } from '@/stores/dialogs'; -import { type ICstCreateDTO } from '../../backend/types'; +import { type ICreateConstituentaDTO } from '../../backend/types'; import { type IConstituenta } from '../../models/rsform'; import { generateAlias } from '../../models/rsform-api'; import { type IArgumentValue } from '../../models/rslang'; @@ -16,7 +16,7 @@ import { TemplateContext } from './template-context'; export const TemplateState = ({ children }: React.PropsWithChildren) => { const { schema } = useDialogsStore(state => state.props as DlgCstTemplateProps); - const { setValue } = useFormContext(); + const { setValue } = useFormContext(); const [templateID, setTemplateID] = useState(null); const [args, setArguments] = useState([]); const [prototype, setPrototype] = useState(null); diff --git a/rsconcept/frontend/src/features/rsform/dialogs/dlg-delete-cst/dlg-delete-cst.tsx b/rsconcept/frontend/src/features/rsform/dialogs/dlg-delete-cst/dlg-delete-cst.tsx index d37cf5d3..60220db8 100644 --- a/rsconcept/frontend/src/features/rsform/dialogs/dlg-delete-cst/dlg-delete-cst.tsx +++ b/rsconcept/frontend/src/features/rsform/dialogs/dlg-delete-cst/dlg-delete-cst.tsx @@ -7,7 +7,7 @@ import { ModalForm } from '@/components/modal'; import { useDialogsStore } from '@/stores/dialogs'; import { prefixes } from '@/utils/constants'; -import { useCstDelete } from '../../backend/use-cst-delete'; +import { useDeleteConstituents } from '../../backend/use-delete-constituents'; import { type IRSForm } from '../../models/rsform'; import { ListConstituents } from './list-constituents'; @@ -20,7 +20,7 @@ export interface DlgDeleteCstProps { export function DlgDeleteCst() { const { selected, schema, afterDelete } = useDialogsStore(state => state.props as DlgDeleteCstProps); - const { cstDelete } = useCstDelete(); + const { deleteConstituents: cstDelete } = useDeleteConstituents(); const [expandOut, setExpandOut] = useState(false); const expansion: number[] = schema.graph.expandAllOutputs(selected); diff --git a/rsconcept/frontend/src/features/rsform/dialogs/dlg-edit-word-forms/dlg-edit-word-forms.tsx b/rsconcept/frontend/src/features/rsform/dialogs/dlg-edit-word-forms/dlg-edit-word-forms.tsx index 7143cd72..ad548709 100644 --- a/rsconcept/frontend/src/features/rsform/dialogs/dlg-edit-word-forms/dlg-edit-word-forms.tsx +++ b/rsconcept/frontend/src/features/rsform/dialogs/dlg-edit-word-forms/dlg-edit-word-forms.tsx @@ -15,7 +15,7 @@ import { useGenerateLexeme } from '../../backend/cctext/use-generate-lexeme'; import { useInflectText } from '../../backend/cctext/use-inflect-text'; import { useIsProcessingCctext } from '../../backend/cctext/use-is-processing-cctext'; import { useParseText } from '../../backend/cctext/use-parse-text'; -import { useCstUpdate } from '../../backend/use-cst-update'; +import { useUpdateConstituenta } from '../../backend/use-update-constituenta'; import { SelectMultiGrammeme } from '../../components/select-multi-grammeme'; import { type Grammeme, type IWordForm, supportedGrammemes } from '../../models/language'; import { parseGrammemes, wordFormEquals } from '../../models/language-api'; @@ -30,7 +30,7 @@ export interface DlgEditWordFormsProps { export function DlgEditWordForms() { const { itemID, target } = useDialogsStore(state => state.props as DlgEditWordFormsProps); - const { cstUpdate } = useCstUpdate(); + const { updateConstituenta: cstUpdate } = useUpdateConstituenta(); const isProcessing = useIsProcessingCctext(); const { inflectText } = useInflectText(); diff --git a/rsconcept/frontend/src/features/rsform/dialogs/dlg-rename-cst.tsx b/rsconcept/frontend/src/features/rsform/dialogs/dlg-rename-cst.tsx index 7c505788..a46c1e9e 100644 --- a/rsconcept/frontend/src/features/rsform/dialogs/dlg-rename-cst.tsx +++ b/rsconcept/frontend/src/features/rsform/dialogs/dlg-rename-cst.tsx @@ -9,8 +9,8 @@ import { TextInput } from '@/components/input'; import { ModalForm } from '@/components/modal'; import { useDialogsStore } from '@/stores/dialogs'; -import { type CstType, type ICstRenameDTO, schemaCstRename } from '../backend/types'; -import { useCstRename } from '../backend/use-cst-rename'; +import { type CstType, type IRenameConstituentaDTO, schemaRenameConstituenta } from '../backend/types'; +import { useRenameConstituenta } from '../backend/use-rename-constituenta'; import { SelectCstType } from '../components/select-cst-type'; import { type IConstituenta, type IRSForm } from '../models/rsform'; import { generateAlias, validateNewAlias } from '../models/rsform-api'; @@ -22,10 +22,10 @@ export interface DlgRenameCstProps { export function DlgRenameCst() { const { schema, target } = useDialogsStore(state => state.props as DlgRenameCstProps); - const { cstRename } = useCstRename(); + const { renameConstituenta: cstRename } = useRenameConstituenta(); - const { register, setValue, handleSubmit, control } = useForm({ - resolver: zodResolver(schemaCstRename), + const { register, setValue, handleSubmit, control } = useForm({ + resolver: zodResolver(schemaRenameConstituenta), defaultValues: { target: target.id, alias: target.alias, @@ -36,7 +36,7 @@ export function DlgRenameCst() { const cst_type = useWatch({ control, name: 'cst_type' }); const isValid = alias !== target.alias && validateNewAlias(alias, cst_type, schema); - function onSubmit(data: ICstRenameDTO) { + function onSubmit(data: IRenameConstituentaDTO) { return cstRename({ itemID: schema.id, data: data }); } diff --git a/rsconcept/frontend/src/features/rsform/dialogs/dlg-substitute-cst.tsx b/rsconcept/frontend/src/features/rsform/dialogs/dlg-substitute-cst.tsx index a43b27d5..40e35e01 100644 --- a/rsconcept/frontend/src/features/rsform/dialogs/dlg-substitute-cst.tsx +++ b/rsconcept/frontend/src/features/rsform/dialogs/dlg-substitute-cst.tsx @@ -9,33 +9,33 @@ import { ErrorField } from '@/components/input'; import { ModalForm } from '@/components/modal'; import { useDialogsStore } from '@/stores/dialogs'; -import { type ICstSubstitutionsDTO, schemaCstSubstitutions } from '../backend/types'; -import { useCstSubstitute } from '../backend/use-cst-substitute'; +import { type ISubstitutionsDTO, schemaSubstitutions } from '../backend/types'; +import { useSubstituteConstituents } from '../backend/use-substitute-constituents'; import { PickSubstitutions } from '../components/pick-substitutions'; import { type IRSForm } from '../models/rsform'; export interface DlgSubstituteCstProps { schema: IRSForm; - onSubstitute: (data: ICstSubstitutionsDTO) => void; + onSubstitute: (data: ISubstitutionsDTO) => void; } export function DlgSubstituteCst() { const { onSubstitute, schema } = useDialogsStore(state => state.props as DlgSubstituteCstProps); - const { cstSubstitute } = useCstSubstitute(); + const { substituteConstituents: cstSubstitute } = useSubstituteConstituents(); const { handleSubmit, control, formState: { errors, isValid } - } = useForm({ - resolver: zodResolver(schemaCstSubstitutions), + } = useForm({ + resolver: zodResolver(schemaSubstitutions), defaultValues: { substitutions: [] }, mode: 'onChange' }); - function onSubmit(data: ICstSubstitutionsDTO) { + function onSubmit(data: ISubstitutionsDTO) { return cstSubstitute({ itemID: schema.id, data: data }).then(() => onSubstitute(data)); } diff --git a/rsconcept/frontend/src/features/rsform/index.ts b/rsconcept/frontend/src/features/rsform/index.ts index bbf51fd8..098ab28c 100644 --- a/rsconcept/frontend/src/features/rsform/index.ts +++ b/rsconcept/frontend/src/features/rsform/index.ts @@ -1,6 +1,6 @@ export { CstType, - type ICstSubstitute, + type ISubstituteConstituents as ICstSubstitute, type IRSFormDTO, type IVersionCreatedResponse, ParsingStatus, diff --git a/rsconcept/frontend/src/features/rsform/pages/rsform-page/editor-constituenta/form-constituenta.tsx b/rsconcept/frontend/src/features/rsform/pages/rsform-page/editor-constituenta/form-constituenta.tsx index 43ca6afe..a9dfdc69 100644 --- a/rsconcept/frontend/src/features/rsform/pages/rsform-page/editor-constituenta/form-constituenta.tsx +++ b/rsconcept/frontend/src/features/rsform/pages/rsform-page/editor-constituenta/form-constituenta.tsx @@ -17,13 +17,13 @@ import { promptUnsaved } from '@/utils/utils'; import { CstType, - type ICstUpdateDTO, type IExpressionParseDTO, + type IUpdateConstituentaDTO, ParsingStatus, - schemaCstUpdate + schemaUpdateConstituenta } from '../../../backend/types'; -import { useCstUpdate } from '../../../backend/use-cst-update'; import { useMutatingRSForm } from '../../../backend/use-mutating-rsform'; +import { useUpdateConstituenta } from '../../../backend/use-update-constituenta'; import { RefsInput } from '../../../components/refs-input'; import { labelCstTypification, labelTypification } from '../../../labels'; import { type IConstituenta, type IRSForm } from '../../../models/rsform'; @@ -50,9 +50,9 @@ export function FormConstituenta({ disabled, id, toggleReset, schema, activeCst, control, reset, formState: { isDirty } - } = useForm({ resolver: zodResolver(schemaCstUpdate) }); + } = useForm({ resolver: zodResolver(schemaUpdateConstituenta) }); - const { cstUpdate } = useCstUpdate(); + const { updateConstituenta: cstUpdate } = useUpdateConstituenta(); const showTypification = useDialogsStore(state => state.showShowTypeGraph); const showEditTerm = useDialogsStore(state => state.showEditWordForms); const showRenameCst = useDialogsStore(state => state.showRenameCst); @@ -104,7 +104,7 @@ export function FormConstituenta({ disabled, id, toggleReset, schema, activeCst, return () => setIsModified(false); }, [isDirty, activeCst, setIsModified]); - function onSubmit(data: ICstUpdateDTO) { + function onSubmit(data: IUpdateConstituentaDTO) { return cstUpdate({ itemID: schema.id, data }).then(() => reset({ ...data })); } diff --git a/rsconcept/frontend/src/features/rsform/pages/rsform-page/editor-rsform-card/toolbar-versioning.tsx b/rsconcept/frontend/src/features/rsform/pages/rsform-page/editor-rsform-card/toolbar-versioning.tsx index a264dac7..02d37055 100644 --- a/rsconcept/frontend/src/features/rsform/pages/rsform-page/editor-rsform-card/toolbar-versioning.tsx +++ b/rsconcept/frontend/src/features/rsform/pages/rsform-page/editor-rsform-card/toolbar-versioning.tsx @@ -4,7 +4,7 @@ import clsx from 'clsx'; import { HelpTopic } from '@/features/help'; import { BadgeHelp } from '@/features/help/components'; -import { useVersionRestore } from '@/features/library/backend/use-version-restore'; +import { useRestoreVersion } from '@/features/library/backend/use-restore-version'; import { MiniButton } from '@/components/control'; import { IconNewVersion, IconUpload, IconVersions } from '@/components/icons'; @@ -22,7 +22,7 @@ interface ToolbarVersioningProps { export function ToolbarVersioning({ blockReload, className }: ToolbarVersioningProps) { const { isModified } = useModificationStore(); - const { versionRestore } = useVersionRestore(); + const { restoreVersion: versionRestore } = useRestoreVersion(); const { schema, isMutable, isContentEditable, navigateVersion, activeVersion, selected } = useRSEdit(); const showCreateVersion = useDialogsStore(state => state.showCreateVersion); diff --git a/rsconcept/frontend/src/features/rsform/pages/rsform-page/rsedit-state.tsx b/rsconcept/frontend/src/features/rsform/pages/rsform-page/rsedit-state.tsx index 80ef0045..504bc32d 100644 --- a/rsconcept/frontend/src/features/rsform/pages/rsform-page/rsedit-state.tsx +++ b/rsconcept/frontend/src/features/rsform/pages/rsform-page/rsedit-state.tsx @@ -15,9 +15,9 @@ import { PARAMETER, prefixes } from '@/utils/constants'; import { promptText } from '@/utils/labels'; import { promptUnsaved } from '@/utils/utils'; -import { CstType, type IConstituentaBasicsDTO, type ICstCreateDTO } from '../../backend/types'; -import { useCstCreate } from '../../backend/use-cst-create'; -import { useCstMove } from '../../backend/use-cst-move'; +import { CstType, type IConstituentaBasicsDTO, type ICreateConstituentaDTO } from '../../backend/types'; +import { useCreateConstituenta } from '../../backend/use-create-constituenta'; +import { useMoveConstituents } from '../../backend/use-move-constituents'; import { useRSFormSuspense } from '../../backend/use-rsform'; import { type IConstituenta } from '../../models/rsform'; import { generateAlias } from '../../models/rsform-api'; @@ -59,8 +59,8 @@ export const RSEditState = ({ const activeCst = selected.length === 0 ? null : schema.cstByID.get(selected[selected.length - 1])!; - const { cstCreate } = useCstCreate(); - const { cstMove } = useCstMove(); + const { createConstituenta: cstCreate } = useCreateConstituenta(); + const { moveConstituents: cstMove } = useMoveConstituents(); const { deleteItem } = useDeleteItem(); const showCreateCst = useDialogsStore(state => state.showCreateCst); @@ -206,7 +206,7 @@ export const RSEditState = ({ function createCst(type: CstType | null, skipDialog: boolean, definition?: string) { const targetType = type ?? activeCst?.cst_type ?? CstType.BASE; - const data: ICstCreateDTO = { + const data: ICreateConstituentaDTO = { insert_after: activeCst?.id ?? null, cst_type: targetType, alias: generateAlias(targetType, schema),