From c63738e17df4d5bfff2049a6d1c445c609c2189e Mon Sep 17 00:00:00 2001 From: Sam Nystrom Date: Thu, 14 Mar 2024 19:29:29 -0400 Subject: fix: fix lots of type errors --- src/components/ArrowButton.tsx | 4 +++- src/components/Button.tsx | 2 +- src/components/Header.tsx | 4 ++-- src/components/TextInput.tsx | 4 ++-- src/components/index.ts | 35 ++++++++++++++++++++++++----------- src/components/nodes/Input.tsx | 5 +++-- src/components/nodes/Socket.tsx | 2 +- src/components/nodes/index.ts | 9 ++++++--- 8 files changed, 42 insertions(+), 23 deletions(-) (limited to 'src/components') diff --git a/src/components/ArrowButton.tsx b/src/components/ArrowButton.tsx index ce0c898..a95964e 100644 --- a/src/components/ArrowButton.tsx +++ b/src/components/ArrowButton.tsx @@ -1,7 +1,9 @@ import Button, { ButtonProps } from './Button.tsx'; import './ArrowButton.css'; -const ArrowButton = ({ children, ...props }: ButtonProps) => { +export type ArrowButtonProps = ButtonProps; + +const ArrowButton = ({ children, ...props }: ArrowButtonProps) => { return ( } + {!!title && } diff --git a/src/components/TextInput.tsx b/src/components/TextInput.tsx index 026b062..c74828d 100644 --- a/src/components/TextInput.tsx +++ b/src/components/TextInput.tsx @@ -4,12 +4,12 @@ import './TextInput.css'; export interface TextInputProps { signal?: Signal; - props: Record; + [prop: string]: any; } const TextInput = ({ signal, ...props }: TextInputProps) => { const onInputSignal = useCallback((event: InputEvent) => { - signal.value = event.target.value; + if (signal) signal.value = (event.target as HTMLInputElement).value; }, [signal]); return ( diff --git a/src/components/index.ts b/src/components/index.ts index c9c3625..badd32e 100644 --- a/src/components/index.ts +++ b/src/components/index.ts @@ -1,12 +1,25 @@ -export { default as ArrowButton } from './ArrowButton.tsx'; -export { default as Button } from './Button.tsx'; -export { default as ButtonMenu } from './ButtonMenu.tsx'; +export { default as ArrowButton } from './ArrowButton.tsx'; +export { default as Button } from './Button.tsx'; +export { default as ButtonMenu } from './ButtonMenu.tsx'; export { default as ContainedList } from './ContainedList.tsx'; -export { default as Content } from './Content.tsx'; -export { default as Form } from './Form.tsx'; -export { default as FormLabel } from './FormLabel.tsx'; -export { default as Header } from './Header.tsx'; -export { default as Menu } from './Menu.tsx'; -export { default as MenuItem } from './MenuItem.tsx'; -export { default as TextInput } from './TextInput.tsx'; -export { default as Toolbar } from './Toolbar.tsx'; +export { default as Content } from './Content.tsx'; +export { default as Form } from './Form.tsx'; +export { default as FormLabel } from './FormLabel.tsx'; +export { default as Header } from './Header.tsx'; +export { default as Menu } from './Menu.tsx'; +export { default as MenuItem } from './MenuItem.tsx'; +export { default as TextInput } from './TextInput.tsx'; +export { default as Toolbar } from './Toolbar.tsx'; + +export type { ArrowButtonProps } from './ArrowButton.tsx'; +export type { ButtonMenuProps } from './ButtonMenu.tsx'; +export type { ButtonProps } from './Button.tsx'; +export type { ContainedListProps } from './ContainedList.tsx'; +export type { ContentProps } from './Content.tsx'; +export type { FormLabelProps } from './FormLabel.tsx'; +export type { FormProps } from './Form.tsx'; +export type { HeaderProps } from './Header.tsx'; +export type { MenuItemProps } from './MenuItem.tsx'; +export type { MenuProps } from './Menu.tsx'; +export type { TextInputProps } from './TextInput.tsx'; +export type { ToolbarProps } from './Toolbar.tsx'; diff --git a/src/components/nodes/Input.tsx b/src/components/nodes/Input.tsx index c32b32d..4bd7751 100644 --- a/src/components/nodes/Input.tsx +++ b/src/components/nodes/Input.tsx @@ -1,3 +1,4 @@ +import type { ComponentChildren } from 'preact'; import { useCallback } from 'preact/hooks'; import { InputSocket } from '../../dataflow.ts'; import { InSocket } from './Socket.tsx'; @@ -37,7 +38,7 @@ export const InputArray = ({ name, label }: Omit, 'value'>) => { ); }; -const InputNum = (parseFunc: (string) => number) => ({ name, label, value }: InputProps) => { +const InputNum = (parseFunc: (_: string) => number) => ({ name, label, value }: InputProps) => { const onInput = useCallback((event: InputEvent) => { value.value = parseFunc((event.target as HTMLInputElement).value); }, [value]); @@ -77,7 +78,7 @@ export interface InputSelectProps extends InputProps { } export const InputSelect = ({ name, label, value, options }: InputSelectProps) => { - const onChange = useCallback((event: InputEvent) => { + const onChange = useCallback((event: Event) => { value.value = (event.target as HTMLSelectElement).value; }, [value]); return ( diff --git a/src/components/nodes/Socket.tsx b/src/components/nodes/Socket.tsx index a4f38e1..6a958c5 100644 --- a/src/components/nodes/Socket.tsx +++ b/src/components/nodes/Socket.tsx @@ -1,5 +1,5 @@ import { useContext } from 'preact/hooks'; -import { NodeId, SocketHandlers } from '../../node.ts'; +import { NodeId, SocketHandlers, SocketHandler } from '../../node.ts'; import './Socket.css'; interface SocketProps { diff --git a/src/components/nodes/index.ts b/src/components/nodes/index.ts index d29f39f..b5ca5fc 100644 --- a/src/components/nodes/index.ts +++ b/src/components/nodes/index.ts @@ -1,3 +1,6 @@ -export { default as NodeShell, NodeShellProps } from './NodeShell.tsx'; -export { OutputNumber, OutputVector, OutputProps } from './Output.tsx'; -export { InputAny, InputArray, InputInteger, InputNumber, InputVector, InputSelect, InputProps, InputSelectProps } from './Input.tsx'; +export { InputAny, InputArray, InputInteger, InputNumber, InputVector, InputSelect } from './Input.tsx'; +export { default as NodeShell } from './NodeShell.tsx'; +export { OutputNumber, OutputVector } from './Output.tsx'; +export type { InputProps, InputSelectProps } from './Input.tsx'; +export type { NodeShellProps } from './NodeShell.tsx'; +export type { OutputProps } from './Output.tsx'; -- cgit v1.2.3