From 38d90e2161fb7bcad8b5a02c41757d1900438019 Mon Sep 17 00:00:00 2001 From: imeepos Date: Thu, 25 Dec 2025 20:34:17 +0800 Subject: [PATCH] fix: api type --- hooks/data/use-activities.ts | 31 ++------------------ hooks/data/use-categories.ts | 12 ++------ hooks/data/use-favorite-templates.ts | 11 ++----- hooks/data/use-public-templates.ts | 15 ++-------- hooks/data/use-recommended-templates.ts | 20 ++++--------- hooks/data/use-tags.ts | 10 ++----- hooks/data/use-template-generation-detail.ts | 3 +- hooks/data/use-template-generations.ts | 23 ++++----------- hooks/data/use-templates.ts | 16 ++-------- 9 files changed, 27 insertions(+), 114 deletions(-) diff --git a/hooks/data/use-activities.ts b/hooks/data/use-activities.ts index 8e6bfd2..879a140 100644 --- a/hooks/data/use-activities.ts +++ b/hooks/data/use-activities.ts @@ -2,39 +2,14 @@ import { ApiError } from "@/lib/types" import { useState } from "react" import { OWNER_ID } from "@/hooks/constants" import { root } from '@repo/core'; -import { ActivityController } from "@repo/sdk"; +import { ActivityController, ListActivitiesResult, ListActivitiesInput } from "@repo/sdk"; import { useError } from "./use-error"; export const useActivities = () => { const [loading, setLoading] = useState(false) const [error, setError] = useState(null) - const [data, setData] = useState<{ - activities: { - title: string - titleEn: string - desc: string - descEn: string - coverUrl: string - link: string - createdAt: Date - updatedAt: Date - id: string - videoUrl?: string | null - ownerId?: string | null - isActive?: boolean | null - sortOrder?: number | null - }[] - total: number - page: number - limit: number - totalPages: number - }>() + const [data, setData] = useState() - const load = async (params: { - page: number; - limit: number; - orderBy: string; - order: string; - } = { page: 1, limit: 10, orderBy: 'createdAt', order: 'desc' }) => { + const load = async (params: ListActivitiesInput = { page: 1, limit: 10, orderBy: 'createdAt', order: 'desc' }) => { try { setLoading(true) const activity = root.get(ActivityController) diff --git a/hooks/data/use-categories.ts b/hooks/data/use-categories.ts index 7acef9b..0e4790a 100644 --- a/hooks/data/use-categories.ts +++ b/hooks/data/use-categories.ts @@ -2,7 +2,7 @@ import { ApiError } from "@/lib/types" import { useState } from "react" import { OWNER_ID } from "@/hooks/constants" import { root } from '@repo/core' -import { CategoryController, ListCategoriesResult } from "@repo/sdk" +import { CategoryController, ListCategoriesResult, ListCategoriesInput } from "@repo/sdk" import { useError } from "./use-error" export const useCategories = () => { @@ -10,15 +10,7 @@ export const useCategories = () => { const [error, setError] = useState(null) const [data, setData] = useState() - const load = async (params?: { - page?: number - limit?: number - isActive?: boolean - search?: string - categoryIds?: string[] - withChildren?: boolean - ownerId?: string - }) => { + const load = async (params?: ListCategoriesInput) => { try { setLoading(true) const category = root.get(CategoryController) diff --git a/hooks/data/use-favorite-templates.ts b/hooks/data/use-favorite-templates.ts index 0f531cc..1127f4b 100644 --- a/hooks/data/use-favorite-templates.ts +++ b/hooks/data/use-favorite-templates.ts @@ -1,20 +1,15 @@ import { ApiError } from "@/lib/types" import { useState, useCallback } from "react" import { root } from '@repo/core' -import { TemplateSocialController, GetUserFavoritesResponse } from "@repo/sdk" +import { TemplateSocialController, GetUserFavoritesInput, GetUserFavoritesResponse } from "@repo/sdk" import { useError } from "./use-error" -interface UseFavoriteTemplatesParams { - page?: number - limit?: number -} - export const useFavoriteTemplates = () => { const [loading, setLoading] = useState(false) const [error, setError] = useState(null) const [data, setData] = useState() - const execute = useCallback(async (params?: UseFavoriteTemplatesParams) => { + const execute = useCallback(async (params?: GetUserFavoritesInput) => { setLoading(true) setError(null) @@ -35,7 +30,7 @@ export const useFavoriteTemplates = () => { return { data, error: null } }, []) - const refetch = useCallback((params?: UseFavoriteTemplatesParams) => { + const refetch = useCallback((params?: GetUserFavoritesInput) => { return execute(params) }, [execute]) diff --git a/hooks/data/use-public-templates.ts b/hooks/data/use-public-templates.ts index 3bc00e5..36c54a6 100644 --- a/hooks/data/use-public-templates.ts +++ b/hooks/data/use-public-templates.ts @@ -1,24 +1,15 @@ import { ApiError } from "@/lib/types" import { useState, useCallback } from "react" import { root } from '@repo/core' -import { RecommendedTemplateController } from "@repo/sdk" +import { RecommendedTemplateController, ListPublicRecommendedTemplatesInput, ListPublicRecommendedTemplatesResult } from "@repo/sdk" import { useError } from "./use-error" -type ApiListResult = Awaited> -type ListPublicRecommendedTemplatesResult = NonNullable - -interface UsePublicTemplatesParams { - limit?: number - sortBy?: 'sortOrder' | 'likeCount' | 'viewCount' | 'createdAt' | 'updatedAt' - sortOrder?: 'asc' | 'desc' -} - export const usePublicTemplates = () => { const [loading, setLoading] = useState(false) const [error, setError] = useState(null) const [data, setData] = useState() - const execute = useCallback(async (params?: UsePublicTemplatesParams) => { + const execute = useCallback(async (params?: ListPublicRecommendedTemplatesInput) => { setLoading(true) setError(null) @@ -40,7 +31,7 @@ export const usePublicTemplates = () => { return { data, error: null } }, []) - const refetch = useCallback((params?: UsePublicTemplatesParams) => { + const refetch = useCallback((params?: ListPublicRecommendedTemplatesInput) => { return execute(params) }, [execute]) diff --git a/hooks/data/use-recommended-templates.ts b/hooks/data/use-recommended-templates.ts index 6ff9af8..5c61bf0 100644 --- a/hooks/data/use-recommended-templates.ts +++ b/hooks/data/use-recommended-templates.ts @@ -1,25 +1,15 @@ -import { ApiError, PaginationParams } from "@/lib/types" +import { ApiError } from "@/lib/types" import { useState, useCallback } from "react" import { root } from '@repo/core' -import { RecommendedTemplateController } from "@repo/sdk" +import { RecommendedTemplateController, ListPublicRecommendedTemplatesInput, ListPublicRecommendedTemplatesResult } from "@repo/sdk" import { useError } from "./use-error" -interface UseRecommendedTemplatesParams extends PaginationParams { - isActive?: boolean -} - -type ApiListResult = Awaited> -type ApiData = NonNullable - -export type RecommendedTemplate = ApiData['templates'][number] -type UseRecommendedTemplatesResponse = ApiData - export const useRecommendedTemplates = () => { const [loading, setLoading] = useState(false) const [error, setError] = useState(null) - const [data, setData] = useState() + const [data, setData] = useState() - const execute = useCallback(async (params?: UseRecommendedTemplatesParams) => { + const execute = useCallback(async (params?: ListPublicRecommendedTemplatesInput) => { setLoading(true) setError(null) @@ -41,7 +31,7 @@ export const useRecommendedTemplates = () => { return { data, error: null } }, []) - const refetch = useCallback((params?: UseRecommendedTemplatesParams) => { + const refetch = useCallback((params?: ListPublicRecommendedTemplatesInput) => { return execute(params) }, [execute]) diff --git a/hooks/data/use-tags.ts b/hooks/data/use-tags.ts index 96f55e5..01df64a 100644 --- a/hooks/data/use-tags.ts +++ b/hooks/data/use-tags.ts @@ -2,20 +2,14 @@ import { ApiError } from "@/lib/types" import { useState } from "react" import { OWNER_ID } from '@/hooks/constants' import { root } from '@repo/core' -import { TagController, ListTagsResult } from "@repo/sdk" +import { TagController, ListTagsResult, ListTagsInput } from "@repo/sdk" import { useError } from "./use-error" export const useTags = () => { const [loading, setLoading] = useState(false) const [error, setError] = useState(null) const [data, setData] = useState() - const load = async (params?: { - page?: number - limit?: number - search?: string - ownerId?: string - categoryIds?: string[] - }) => { + const load = async (params?: ListTagsInput) => { try { setLoading(true) const tag = root.get(TagController) diff --git a/hooks/data/use-template-generation-detail.ts b/hooks/data/use-template-generation-detail.ts index c2246d0..73f614f 100644 --- a/hooks/data/use-template-generation-detail.ts +++ b/hooks/data/use-template-generation-detail.ts @@ -1,8 +1,7 @@ import { ApiError } from "@/lib/types" import { useState, useCallback } from "react" -import type { TemplateGeneration } from "./use-template-generations" import { root } from '@repo/core' -import { TemplateGenerationController } from "@repo/sdk" +import { TemplateGenerationController, TemplateGeneration } from "@repo/sdk" import { useError } from "./use-error" interface GetParams { diff --git a/hooks/data/use-template-generations.ts b/hooks/data/use-template-generations.ts index 1055e86..8af3291 100644 --- a/hooks/data/use-template-generations.ts +++ b/hooks/data/use-template-generations.ts @@ -1,28 +1,15 @@ -import { ApiError, PaginationParams } from "@/lib/types" +import { ApiError } from "@/lib/types" import { useState, useCallback } from "react" import { root } from '@repo/core' -import { TemplateGenerationController } from "@repo/sdk" +import { TemplateGenerationController, ListTemplateGenerationsInput, ListTemplateGenerationsResult } from "@repo/sdk" import { useError } from "./use-error" -type ApiListResult = Awaited> -type ApiData = NonNullable - -export type TemplateGeneration = ApiData['data'][number] -type ListResponse = ApiData - -interface ListParams extends PaginationParams { - userId?: string - templateId?: string - status?: "pending" | "processing" | "completed" | "failed" - search?: string -} - export const useTemplateGenerations = () => { const [loading, setLoading] = useState(false) const [error, setError] = useState(null) - const [data, setData] = useState() + const [data, setData] = useState() - const load = useCallback(async (params?: ListParams) => { + const load = useCallback(async (params?: ListTemplateGenerationsInput) => { setLoading(true) setError(null) @@ -44,7 +31,7 @@ export const useTemplateGenerations = () => { return { data, error: null } }, []) - const refetch = useCallback((params?: ListParams) => { + const refetch = useCallback((params?: ListTemplateGenerationsInput) => { return load(params) }, [load]) diff --git a/hooks/data/use-templates.ts b/hooks/data/use-templates.ts index 2c5ba22..26e45f5 100644 --- a/hooks/data/use-templates.ts +++ b/hooks/data/use-templates.ts @@ -1,26 +1,16 @@ -import { ApiError, PaginationParams } from "@/lib/types" +import { ApiError } from "@/lib/types" import { useState, useCallback } from "react" import { OWNER_ID } from "@/hooks/constants" import { root } from '@repo/core' import { TemplateController, ListTemplatesInput, ListTemplatesResult } from "@repo/sdk" import { useError } from "./use-error" -interface UseTemplatesParams extends PaginationParams { - search?: string - categoryId?: string - isActive?: boolean - status?: string - ownerId?: string - sortBy?: 'sortOrder' | 'likeCount' | 'viewCount' | 'createdAt' | 'updatedAt' - sortOrder?: 'asc' | 'desc' -} - export const useTemplates = () => { const [loading, setLoading] = useState(false) const [error, setError] = useState(null) const [data, setData] = useState() - const execute = useCallback(async (params?: UseTemplatesParams) => { + const execute = useCallback(async (params?: ListTemplatesInput) => { setLoading(true) setError(null) @@ -44,7 +34,7 @@ export const useTemplates = () => { return { data, error: null } }, []) - const refetch = useCallback((params?: UseTemplatesParams) => { + const refetch = useCallback((params?: ListTemplatesInput) => { return execute(params) }, [execute])