diff --git a/packages/effect-fc/src/Component.ts b/packages/effect-fc/src/Component.ts index f733015..e860189 100644 --- a/packages/effect-fc/src/Component.ts +++ b/packages/effect-fc/src/Component.ts @@ -10,6 +10,7 @@ export type TypeId = typeof TypeId export interface Component extends Pipeable.Pipeable, Component.Options { new(_: never): {} readonly [TypeId]: TypeId + /** @internal */ makeFunctionComponent(runtimeRef: React.Ref>>, scope: Scope.Scope): React.FC

readonly body: (props: P) => Effect.Effect } @@ -327,7 +328,7 @@ export const withOptions: { self: T, options: Partial, ): T => Object.setPrototypeOf( - { ...self, ...options }, + Object.assign(function() {}, self, options), Object.getPrototypeOf(self), )) diff --git a/packages/effect-fc/src/Memoized.ts b/packages/effect-fc/src/Memoized.ts index 0fadba3..09b476e 100644 --- a/packages/effect-fc/src/Memoized.ts +++ b/packages/effect-fc/src/Memoized.ts @@ -26,7 +26,7 @@ export const isMemoized = (u: unknown): u is Memoized => Predicate.hasPrope export const memo = >( self: T ): T & Memoized> => Object.setPrototypeOf( - { ...self, ...MemoizedProto }, + Object.assign(function() {}, self, MemoizedProto), Object.getPrototypeOf(self), ) @@ -42,6 +42,6 @@ export const withOptions: { self: T, options: Partial>>, ): T => Object.setPrototypeOf( - { ...self, ...options }, + Object.assign(function() {}, self, options), Object.getPrototypeOf(self), )) diff --git a/packages/effect-fc/src/Suspense.ts b/packages/effect-fc/src/Suspense.ts index 93a7585..3b20fac 100644 --- a/packages/effect-fc/src/Suspense.ts +++ b/packages/effect-fc/src/Suspense.ts @@ -53,7 +53,7 @@ export const suspense = , P extends { & Component.Component, Component.Component.Context, P & Suspense.Props> & Suspense ) => Object.setPrototypeOf( - { ...self, ...SuspenseProto }, + Object.assign(function() {}, self, SuspenseProto), Object.getPrototypeOf(self), ) @@ -69,6 +69,6 @@ export const withOptions: { self: T, options: Partial, ): T => Object.setPrototypeOf( - { ...self, ...options }, + Object.assign(function() {}, self, options), Object.getPrototypeOf(self), ))