All files / react-classic/src/components Types.tsx

0% Statements 0/0
0% Branches 0/0
0% Functions 0/0
0% Lines 0/0

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29                                                         
import type { Bindable } from '../index.js';
import type { WritableKeys } from '@anchorlib/core';
import type { ButtonHTMLAttributes, HTMLAttributes, InputHTMLAttributes, RefObject, SelectHTMLAttributes } from 'react';
 
export type BindProps<T extends Bindable, K extends WritableKeys<T>> = {
  bind: T;
  name: K;
  pipe?: T;
};
export type OmitProps<T extends HTMLAttributes<HTMLElement>> = Omit<T, 'name'>;
 
export type InputProps<T extends Bindable, K extends WritableKeys<T>> = BindProps<T, K> & {
  ref?: RefObject<HTMLInputElement | null>;
  inherits?: Record<string, string | number | undefined>[];
} & OmitProps<InputHTMLAttributes<HTMLInputElement>>;
 
export type SelectProps<T extends Bindable, K extends WritableKeys<T>> = BindProps<T, K> & {
  ref?: RefObject<HTMLSelectElement | null>;
} & OmitProps<SelectHTMLAttributes<HTMLSelectElement>>;
 
export type ToggleProps<T, K extends WritableKeys<T>> = ButtonHTMLAttributes<HTMLButtonElement> & {
  ref?: RefObject<HTMLButtonElement | null>;
  bind: T;
  name: K;
  value?: T[K];
  inherits?: Record<string, string | number | undefined>[];
  onChange?: (current: T[K] | undefined) => void;
};