diff --git a/app/(tabs)/index.tsx b/app/(tabs)/index.tsx index 4058482..1a0a3a4 100644 --- a/app/(tabs)/index.tsx +++ b/app/(tabs)/index.tsx @@ -115,61 +115,31 @@ export default function Sync() { .filter((fav: GetUserFavoritesResponse['favorites'][number]) => fav.template && !fav.template.isDeleted) .map((fav: GetUserFavoritesResponse['favorites'][number]) => transformTemplateToMediaItem(fav.template!)) } else if (activeTab === 'new') { - if (isAuthenticated) { - const { data, error } = await loadTemplates({ - limit, - page: 1, - sortBy: 'createdAt', - sortOrder: 'desc', - search: searchTextRef.current, - }) - if (error || !data?.templates) { - setHasMore(false) - return - } - newItems = data.templates.map(transformTemplateToMediaItem) - } else { - const { data, error } = await loadPublicTemplates({ - limit, - sortBy: 'createdAt', - sortOrder: 'desc', - search: searchTextRef.current, - }) - if (error || !data?.templates) { - setHasMore(false) - return - } - newItems = data.templates.map(transformTemplateToMediaItem) + const { data, error } = await loadTemplates({ + limit, + page: 1, + sortBy: 'createdAt', + sortOrder: 'desc', + search: searchTextRef.current, + }) + if (error || !data?.templates) { setHasMore(false) + return } + newItems = data.templates.map(transformTemplateToMediaItem) } else { - if (isAuthenticated) { - const { data, error } = await loadTemplates({ - limit, - page: 1, - sortBy: 'likeCount', - sortOrder: 'desc', - search: searchTextRef.current, - }) - if (error || !data?.templates) { - setHasMore(false) - return - } - newItems = data.templates.map(transformTemplateToMediaItem) - } else { - const { data, error } = await loadPublicTemplates({ - limit, - sortBy: 'likeCount', - sortOrder: 'desc', - search: searchTextRef.current, - }) - if (error || !data?.templates) { - setHasMore(false) - return - } - newItems = data.templates.map(transformTemplateToMediaItem) + const { data, error } = await loadTemplates({ + limit, + page: 1, + sortBy: 'likeCount', + sortOrder: 'desc', + search: searchTextRef.current, + }) + if (error || !data?.templates) { setHasMore(false) + return } + newItems = data.templates.map(transformTemplateToMediaItem) } if (newItems.length < limit) { diff --git a/bun.lock b/bun.lock index 3b9653d..0586775 100644 --- a/bun.lock +++ b/bun.lock @@ -13,7 +13,7 @@ "@react-navigation/elements": "^2.6.3", "@react-navigation/native": "^7.1.8", "@repo/core": "1.0.1", - "@repo/sdk": "1.0.1", + "@repo/sdk": "1.0.3", "@sentry/react-native": "^7.8.0", "@shopify/flash-list": "^2.2.0", "@stripe/react-stripe-js": "^5.4.1", @@ -603,7 +603,7 @@ "@repo/core": ["@repo/core@1.0.1", "https://gitea.bowongai.com/api/packages/bowong/npm/%40repo%2Fcore/-/1.0.1/core-1.0.1.tgz", {}, "sha512-dzdae2NBT0L4GWCtz6PscmaRvElGFXWeJ46vQhDYc2z49wjnRYRxZgIcwB5bxXjfYZF3sj0cnbbs5mz8F16oAw=="], - "@repo/sdk": ["@repo/sdk@1.0.1", "https://gitea.bowongai.com/api/packages/bowong/npm/%40repo%2Fsdk/-/1.0.1/sdk-1.0.1.tgz", { "dependencies": { "@repo/core": "1.0.1", "reflect-metadata": "^0.2.1", "zod": "^4.2.1" } }, "sha512-jaBLNIiisMiHprbE2b8XyQyKANULHD13Q4PzGmgm5TFevVYhNJMpHTCxP5LIfm+sMXzJYcehJnB7Pok/qaoSeA=="], + "@repo/sdk": ["@repo/sdk@1.0.3", "https://gitea.bowongai.com/api/packages/bowong/npm/%40repo%2Fsdk/-/1.0.3/sdk-1.0.3.tgz", { "dependencies": { "@repo/core": "1.0.1", "reflect-metadata": "^0.2.1", "zod": "^4.2.1" } }, "sha512-R/pYYruEakDbW3elM6KYxnrUU6cfrBxJL6vI1fspYfL4gAvBO3evXlHdkarY/m8Oxb6cyqKRg0SNcE36uFYKug=="], "@rtsao/scc": ["@rtsao/scc@1.1.0", "", {}, "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g=="], diff --git a/hooks/actions/use-template-actions.ts b/hooks/actions/use-template-actions.ts index 3f1b143..ea1e755 100644 --- a/hooks/actions/use-template-actions.ts +++ b/hooks/actions/use-template-actions.ts @@ -4,17 +4,36 @@ import { RunTemplateInput, TemplateController, TemplateGenerationController, + RerunTemplateSchema } from '@repo/sdk' import { useCallback, useState } from 'react' import { type ApiError } from '@/lib/types' import { useError } from '../data/use-error' +import z from 'zod' export const useTemplateActions = () => { const [loading, setLoading] = useState(false) const [error, setError] = useState(null) + const reRunTemplate = useCallback(async (params: z.infer) => { + setLoading(true) + setError(null) + + const template = root.get(TemplateController) + const { data, error } = await useError(async () => await template.rerun(params)) + + if (error) { + setError(error) + setLoading(false) + return { generationId: null, error } + } + + setLoading(false) + return { generationId: data?.generationId, error: null } + }, []) + const runTemplate = useCallback(async (params: RunTemplateInput) => { setLoading(true) setError(null) @@ -90,5 +109,6 @@ export const useTemplateActions = () => { createGeneration, deleteGeneration, batchDeleteGenerations, + reRunTemplate } } diff --git a/package.json b/package.json index d661a29..e2bef38 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,7 @@ }, "dependencies": { "@repo/core": "1.0.1", - "@repo/sdk": "1.0.1", + "@repo/sdk": "1.0.3", "@better-auth/expo": "^1.4.5", "@expo/vector-icons": "^15.0.3", "@react-native-async-storage/async-storage": "^2.2.0",