Skip to content

Commit

Permalink
fix #946
Browse files Browse the repository at this point in the history
  • Loading branch information
uNmAnNeR committed Dec 13, 2023
1 parent 29cc3b0 commit 1c197fa
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 11 deletions.
8 changes: 4 additions & 4 deletions packages/imask/src/masked/factory.ts
Expand Up @@ -124,7 +124,7 @@ type UpdateStaticOpts<Opts extends FactoryStaticOpts> =
never
;

type UpdateAnyOpts = Record<string, any>;
type AnyOpts = Record<string, any>;

export
type UpdateInstanceOpts<M extends Masked> =
Expand All @@ -136,7 +136,7 @@ type UpdateInstanceOpts<M extends Masked> =
M extends MaskedRange ? MaskedRangeOptions :
M extends MaskedEnum ? MaskedEnumOptions :
M extends MaskedPattern ? MaskedPatternOptions :
UpdateAnyOpts
AnyOpts
;

export
Expand All @@ -149,7 +149,7 @@ type UpdateConstructorOpts<M extends FactoryConstructorOpts> =
M extends { mask: typeof MaskedFunction } ? MaskedFunctionOptions :
M extends { mask: typeof MaskedPattern } ? MaskedPatternOptions :
M extends { mask: typeof MaskedDynamic } ? MaskedDynamicOptions :
UpdateAnyOpts
AnyOpts
;

export
Expand All @@ -170,7 +170,7 @@ type UpdateOpts<Opts extends FactoryArg> = Partial<
Opts extends FactoryStaticOpts ? UpdateStaticOpts<Opts> :
Opts extends FactoryInstanceOpts ? UpdateInstanceOpts<Opts['mask']> :
Opts extends FactoryConstructorOpts ? UpdateConstructorOpts<Opts> :
UpdateAnyOpts
AnyOpts
>;

export
Expand Down
20 changes: 13 additions & 7 deletions packages/react-imask/src/mixin.ts
Expand Up @@ -125,7 +125,12 @@ type NonMaskProps<
export
type ReactMixinComponent<
MaskElement extends InputMaskElement,
> = React.ComponentType<ReactElementProps<MaskElement> & { inputRef: React.Ref<MaskElement>; }>;
Props extends IMaskInputProps<MaskElement>,
> = React.ComponentType<
& ReactElementProps<MaskElement>
& { inputRef: React.Ref<MaskElement> }
& NonMaskProps<MaskElement, Props>
>;

export
type MaskPropsKeys = Exclude<keyof typeof MASK_PROPS, typeof NON_MASK_OPTIONS_PROPS_NAMES[number]>;
Expand All @@ -152,11 +157,13 @@ type IMaskInputProps<
> = ReactElementProps<MaskElement> & IMaskMixinProps<MaskElement, Props>;


type AnyProps = Record<string, unknown>;

export default
function IMaskMixin<
MaskElement extends InputMaskElement,
Props extends IMaskInputProps<MaskElement>,
>(ComposedComponent: ReactMixinComponent<MaskElement>) {
Props extends IMaskInputProps<MaskElement>=AnyProps,
>(ComposedComponent: ReactMixinComponent<MaskElement, Props>) {
const MaskedComponent = class extends React.Component<Props> {
static displayName: string;
static propTypes: typeof MASK_PROPS;
Expand Down Expand Up @@ -285,8 +292,7 @@ function IMaskMixin<
MaskedComponent.displayName = `IMask(${nestedComponentName})`;
MaskedComponent.propTypes = MASK_PROPS;

return React.forwardRef<
React.ComponentType<Props>,
Props
>((props, ref) => React.createElement(MaskedComponent, { ...props, ref }));
return React.forwardRef<React.ComponentType<Props>, Props>(
(props, ref) => React.createElement(MaskedComponent, { ...props, ref })
);
}

0 comments on commit 1c197fa

Please sign in to comment.