Add "shouldForwardProp" util function

This commit is contained in:
schroda
2024-09-27 20:34:32 +02:00
parent 8f4da52d1f
commit df420710ae
5 changed files with 55 additions and 25 deletions

View File

@@ -0,0 +1,18 @@
/*
* Copyright (C) Contributors to the Suwayomi project
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
type TupleUnion<U extends string | number | symbol, R extends any[] = []> = {
[S in U]: Exclude<U, S> extends never ? [...R, S] : TupleUnion<Exclude<U, S>, [...R, S]>;
}[U];
export const shouldForwardProp =
<TCustomProps extends Record<string, unknown>>(customProps: TupleUnion<keyof TCustomProps>) =>
(prop: string): boolean =>
// @ts-ignore - TS2589: Type instantiation is excessively deep and possibly infinite.
// this function should never be used without a strict type, thus, this error can be ignored
!customProps.includes(prop);