refactor: 프론트 템플릿 리펙토링
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import { useApplication } from "../../../presentation/providers/application-provider.tsx";
|
||||
import { useApplicationFeature } from "../../../presentation/providers/application-provider.tsx";
|
||||
import {
|
||||
useApplicationMutation,
|
||||
useApplicationQuery,
|
||||
@@ -50,8 +50,32 @@ function measureResourceList(
|
||||
return { itemCount: views.length, estimatedBytes };
|
||||
}
|
||||
|
||||
const REFERENCE_CREATE_MUTATION_POLICY = Object.freeze({
|
||||
definitionId: "reference-resource-create-v1",
|
||||
definitionVersion: 1,
|
||||
operationId: "CREATE_REFERENCE_RESOURCE",
|
||||
requiresIdempotencyKey: true,
|
||||
owner: REFERENCE_FEATURE_ID,
|
||||
duplicatePolicy: "REJECT_WHILE_ACTIVE" as const,
|
||||
invalidate: Object.freeze([REFERENCE_RESOURCE_INVALIDATION_TOPIC]),
|
||||
});
|
||||
|
||||
type ReferenceCreateMutationBinding = Pick<
|
||||
BoundMutation<ReferenceCreateCommand, ReferenceResourceView>,
|
||||
"scope" | "execute"
|
||||
>;
|
||||
|
||||
function bindReferenceCreateMutation(
|
||||
binding: ReferenceCreateMutationBinding,
|
||||
): BoundMutation<ReferenceCreateCommand, ReferenceResourceView> {
|
||||
return Object.freeze({
|
||||
...REFERENCE_CREATE_MUTATION_POLICY,
|
||||
...binding,
|
||||
});
|
||||
}
|
||||
|
||||
export function useReferenceFeatureInput(): ReferenceFeatureInput {
|
||||
return useApplication().features.get(REFERENCE_FEATURE_ID);
|
||||
return useApplicationFeature(REFERENCE_FEATURE_ID);
|
||||
}
|
||||
|
||||
export function useReferenceDetail(resourceId: string) {
|
||||
@@ -82,20 +106,10 @@ export function useReferenceDetail(resourceId: string) {
|
||||
export function useReferenceCreate() {
|
||||
const input = useReferenceFeatureInput();
|
||||
const scope = useServerStateScope();
|
||||
const mutation: BoundMutation<
|
||||
ReferenceCreateCommand,
|
||||
ReferenceResourceView
|
||||
> = {
|
||||
definitionId: "reference-resource-create-v1",
|
||||
definitionVersion: 1,
|
||||
operationId: "CREATE_REFERENCE_RESOURCE",
|
||||
requiresIdempotencyKey: true,
|
||||
owner: REFERENCE_FEATURE_ID,
|
||||
duplicatePolicy: "REJECT_WHILE_ACTIVE",
|
||||
const mutation = bindReferenceCreateMutation({
|
||||
scope,
|
||||
execute: input.createResource,
|
||||
invalidate: [REFERENCE_RESOURCE_INVALIDATION_TOPIC],
|
||||
};
|
||||
});
|
||||
return useApplicationMutation(mutation);
|
||||
}
|
||||
|
||||
@@ -123,16 +137,11 @@ export function useReferenceFeature() {
|
||||
scope,
|
||||
),
|
||||
);
|
||||
const mutation = useApplicationMutation({
|
||||
definitionId: "reference-resource-create-v1",
|
||||
definitionVersion: 1,
|
||||
operationId: "CREATE_REFERENCE_RESOURCE",
|
||||
requiresIdempotencyKey: true,
|
||||
owner: REFERENCE_FEATURE_ID,
|
||||
duplicatePolicy: "REJECT_WHILE_ACTIVE",
|
||||
scope,
|
||||
execute: input.createResource,
|
||||
invalidate: [REFERENCE_RESOURCE_INVALIDATION_TOPIC],
|
||||
});
|
||||
const mutation = useApplicationMutation(
|
||||
bindReferenceCreateMutation({
|
||||
scope,
|
||||
execute: input.createResource,
|
||||
}),
|
||||
);
|
||||
return Object.freeze({ filters, query, mutation });
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user