Vollständiges Redesign mit Gold-Formularen, BMP-Logo, multi-step Forms (Bewerbung, Kontakt, Sponsoring), Netlify-Deployment. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
264 lines
5.9 KiB
TypeScript
264 lines
5.9 KiB
TypeScript
import * as React from "react";
|
|
|
|
export type BatteryManager = {
|
|
supported: boolean;
|
|
loading: boolean;
|
|
level: number | null;
|
|
charging: boolean | null;
|
|
chargingTime: number | null;
|
|
dischargingTime: number | null;
|
|
};
|
|
|
|
export type GeolocationState = {
|
|
loading: boolean;
|
|
accuracy: number | null;
|
|
altitude: number | null;
|
|
altitudeAccuracy: number | null;
|
|
heading: number | null;
|
|
latitude: number | null;
|
|
longitude: number | null;
|
|
speed: number | null;
|
|
timestamp: number | null;
|
|
error: GeolocationPositionError | null;
|
|
};
|
|
|
|
export type HistoryState<T> = {
|
|
state: T;
|
|
set: (newPresent: T) => void;
|
|
undo: () => void;
|
|
redo: () => void;
|
|
clear: () => void;
|
|
canUndo: boolean;
|
|
canRedo: boolean;
|
|
};
|
|
|
|
export type LongPressOptions = {
|
|
threshold?: number;
|
|
onStart?: (e: Event) => void;
|
|
onFinish?: (e: Event) => void;
|
|
onCancel?: (e: Event) => void;
|
|
};
|
|
|
|
export type LongPressFns = {
|
|
onMouseDown: (e: React.MouseEvent) => void;
|
|
onMouseUp: (e: React.MouseEvent) => void;
|
|
onMouseLeave: (e: React.MouseEvent) => void;
|
|
onTouchStart: (e: React.TouchEvent) => void;
|
|
onTouchEnd: (e: React.TouchEvent) => void;
|
|
};
|
|
|
|
export type MousePosition = {
|
|
x: number;
|
|
y: number;
|
|
elementX: number;
|
|
elementY: number;
|
|
elementPositionX: number;
|
|
elementPositionY: number;
|
|
};
|
|
|
|
export type NetworkState = {
|
|
online: boolean;
|
|
downlink: number | null;
|
|
downlinkMax: number | null;
|
|
effectiveType: string | null;
|
|
rtt: number | null;
|
|
saveData: boolean | null;
|
|
type: string | null;
|
|
};
|
|
|
|
export type CustomList<T> = {
|
|
set: (l: T[]) => void;
|
|
push: (element: T) => void;
|
|
removeAt: (index: number) => void;
|
|
insertAt: (index: number, element: T) => void;
|
|
updateAt: (index: number, element: T) => void;
|
|
clear: () => void;
|
|
};
|
|
|
|
export type CustomQueue<T> = {
|
|
add: (element: T) => void;
|
|
remove: () => T | undefined;
|
|
clear: () => void;
|
|
first: T | undefined;
|
|
last: T | undefined;
|
|
size: number;
|
|
queue: T[];
|
|
};
|
|
|
|
export type RenderInfo = {
|
|
name: string;
|
|
renders: number;
|
|
sinceLastRender: number;
|
|
timestamp: number;
|
|
};
|
|
|
|
export type SpeechOptions = {
|
|
lang?: string;
|
|
voice?: {
|
|
lang?: string;
|
|
name?: string;
|
|
};
|
|
rate?: number;
|
|
pitch?: number;
|
|
volume?: number;
|
|
};
|
|
|
|
export type SpeechState = {
|
|
isPlaying: boolean;
|
|
status: "init" | "play" | "pause" | "stop";
|
|
lang: string;
|
|
voiceInfo: {
|
|
lang: string;
|
|
name: string;
|
|
};
|
|
rate: number;
|
|
pitch: number;
|
|
volume: number;
|
|
};
|
|
|
|
declare module "@uidotdev/usehooks" {
|
|
export function useBattery(): BatteryManager;
|
|
|
|
export function useClickAway<T extends Element>(
|
|
cb: (e: Event) => void
|
|
): React.MutableRefObject<T>;
|
|
|
|
export function useCopyToClipboard(): [
|
|
string | null,
|
|
(value: string) => Promise<void>
|
|
];
|
|
|
|
export function useCounter(
|
|
startingValue?: number,
|
|
options?: {
|
|
min?: number;
|
|
max?: number;
|
|
}
|
|
): [
|
|
number,
|
|
{
|
|
increment: () => void;
|
|
decrement: () => void;
|
|
set: (nextCount: number) => void;
|
|
reset: () => void;
|
|
}
|
|
];
|
|
|
|
export function useDebounce<T>(value: T, delay: number): T;
|
|
|
|
export function useDefault<T>(
|
|
initialValue: T,
|
|
defaultValue: T
|
|
): [T, React.Dispatch<React.SetStateAction<T>>];
|
|
|
|
export function useDocumentTitle(title: string): void;
|
|
|
|
export function useFavicon(url: string): void;
|
|
|
|
export function useGeolocation(options?: PositionOptions): GeolocationState;
|
|
|
|
export function useHistoryState<T>(initialPresent?: T): HistoryState<T>;
|
|
|
|
export function useHover<T extends Element>(): [
|
|
React.RefCallback<T>,
|
|
boolean
|
|
];
|
|
|
|
export function useIdle(ms?: number): boolean;
|
|
|
|
export function useIntersectionObserver<T extends Element>(
|
|
options?: IntersectionObserverInit
|
|
): [React.RefCallback<T>, IntersectionObserverEntry | null];
|
|
|
|
export function useIsClient(): boolean;
|
|
|
|
export function useIsFirstRender(): boolean;
|
|
|
|
export function useList<T>(defaultList?: T[]): [T[], CustomList<T>];
|
|
|
|
export function useLocalStorage<T>(
|
|
key: string,
|
|
initialValue?: T
|
|
): [T, React.Dispatch<React.SetStateAction<T>>];
|
|
|
|
export function useLockBodyScroll(): void;
|
|
|
|
export function useLongPress(
|
|
callback: (e: Event) => void,
|
|
options?: LongPressOptions
|
|
): LongPressFns;
|
|
|
|
export function useMap<T>(initialState?: T): Map<T, any>;
|
|
|
|
export function useMeasure<T extends Element>(): [
|
|
React.RefCallback<T>,
|
|
{
|
|
width: number | null;
|
|
height: number | null;
|
|
}
|
|
];
|
|
|
|
export function useMediaQuery(query: string): boolean;
|
|
|
|
export function useMouse<T extends Element>(): [
|
|
MousePosition,
|
|
React.MutableRefObject<T>
|
|
];
|
|
|
|
export function useNetworkState(): NetworkState;
|
|
|
|
export function useObjectState<T>(initialValue: T): [T, (arg: T) => void];
|
|
|
|
export function useOrientation(): {
|
|
angle: number;
|
|
type: string;
|
|
};
|
|
|
|
export function usePreferredLanguage(): string;
|
|
|
|
export function usePrevious<T>(newValue: T): T;
|
|
|
|
export function useQueue<T>(initialValue?: T[]): CustomQueue<T>;
|
|
|
|
export function useRenderCount(): number;
|
|
|
|
export function useRenderInfo(name?: string): RenderInfo | undefined;
|
|
|
|
export function useScript(
|
|
src: string,
|
|
options?: {
|
|
removeOnUnmount?: boolean;
|
|
}
|
|
): "unknown" | "loading" | "ready" | "error";
|
|
|
|
export function useSessionStorage<T>(
|
|
key: string,
|
|
initialValue: T
|
|
): [T, React.Dispatch<React.SetStateAction<T>>];
|
|
|
|
export function useSet<T>(values?: T[]): Set<T>;
|
|
|
|
export function useSpeech(text: string, options?: SpeechOptions): SpeechState;
|
|
|
|
export function useThrottle<T>(value: T, delay: number): T;
|
|
|
|
export function useToggle(
|
|
initialValue?: boolean
|
|
): [boolean, (newValue?: boolean) => void];
|
|
|
|
export function useVisibilityChange(): boolean;
|
|
|
|
export function useWindowScroll(): [
|
|
{
|
|
x: number | null;
|
|
y: number | null;
|
|
},
|
|
(args: unknown) => void
|
|
];
|
|
|
|
export function useWindowSize(): {
|
|
width: number | null;
|
|
height: number | null;
|
|
};
|
|
}
|