From f93945ad791422705e25d231c61c0226c19cd900 Mon Sep 17 00:00:00 2001 From: JohnDoe6345789 Date: Tue, 30 Dec 2025 00:40:26 +0000 Subject: [PATCH] fix(types): update types in LuaScriptDetails and PackageFilters components for better type safety --- .../lua-editor/configuration/LuaScriptDetails.tsx | 5 +++-- .../package/package-manager/PackageFilters.tsx | 13 ++++++++++++- .../nextjs/src/components/rendering/Builder.tsx | 9 +++++++-- 3 files changed, 22 insertions(+), 5 deletions(-) diff --git a/frontends/nextjs/src/components/editors/lua/lua-editor/configuration/LuaScriptDetails.tsx b/frontends/nextjs/src/components/editors/lua/lua-editor/configuration/LuaScriptDetails.tsx index 517dca1f2..d474cd0d4 100644 --- a/frontends/nextjs/src/components/editors/lua/lua-editor/configuration/LuaScriptDetails.tsx +++ b/frontends/nextjs/src/components/editors/lua/lua-editor/configuration/LuaScriptDetails.tsx @@ -2,15 +2,16 @@ import { Plus, Trash } from '@phosphor-icons/react' import { Badge, Button, CardContent, Input, Label } from '@/components/ui' import type { LuaScript } from '@/lib/level-types' +import type { JsonValue } from '@/types/utility-types' interface LuaScriptDetailsProps { script: LuaScript - testInputs: Record + testInputs: Record onUpdateScript: (updates: Partial) => void onAddParameter: () => void onDeleteParameter: (index: number) => void onUpdateParameter: (index: number, updates: { name?: string; type?: string }) => void - onTestInputChange: (paramName: string, value: any) => void + onTestInputChange: (paramName: string, value: JsonValue) => void } export const LuaScriptDetails = ({ diff --git a/frontends/nextjs/src/components/managers/package/package-manager/PackageFilters.tsx b/frontends/nextjs/src/components/managers/package/package-manager/PackageFilters.tsx index 7c783b168..1024e2155 100644 --- a/frontends/nextjs/src/components/managers/package/package-manager/PackageFilters.tsx +++ b/frontends/nextjs/src/components/managers/package/package-manager/PackageFilters.tsx @@ -13,6 +13,12 @@ interface PackageFiltersProps { onSortChange: (value: 'name' | 'downloads' | 'rating') => void } +type SortBy = PackageFiltersProps['sortBy'] + +function isSortBy(value: string): value is SortBy { + return value === 'name' || value === 'downloads' || value === 'rating' +} + export function PackageFilters({ searchQuery, categoryFilter, @@ -52,7 +58,12 @@ export function PackageFilters({ - { + if (isSortBy(value)) onSortChange(value) + }} + > diff --git a/frontends/nextjs/src/components/rendering/Builder.tsx b/frontends/nextjs/src/components/rendering/Builder.tsx index 41667e63e..7a5057c3e 100644 --- a/frontends/nextjs/src/components/rendering/Builder.tsx +++ b/frontends/nextjs/src/components/rendering/Builder.tsx @@ -4,7 +4,12 @@ import { useState } from 'react' import { toast } from 'sonner' import { Button } from '@/components/ui' -import type { BuilderState, ComponentDefinition, ComponentInstance } from '@/lib/builder-types' +import type { + BuilderState, + ComponentDefinition, + ComponentInstance, + ComponentProps, +} from '@/lib/builder-types' import { Canvas } from './Canvas' import { CodeEditor } from './CodeEditor' @@ -63,7 +68,7 @@ export function Builder({ onLogout }: BuilderProps) { }) } - const handleUpdateProps = (id: string, props: any) => { + const handleUpdateProps = (id: string, props: ComponentProps) => { setBuilderState(current => { if (!current) return { components: [], selectedId: null } return {