From 4a20d5879610da6b6cd28d51dbfac41c0b5970c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Tue, 22 Jul 2025 20:43:21 +0200 Subject: [PATCH] Cleanup --- packages/effect-fc/src/Component.ts | 20 +------------------- packages/example/src/routes/dev/memo.tsx | 11 +++-------- 2 files changed, 4 insertions(+), 27 deletions(-) diff --git a/packages/effect-fc/src/Component.ts b/packages/effect-fc/src/Component.ts index 84abe11..4ff4b88 100644 --- a/packages/effect-fc/src/Component.ts +++ b/packages/effect-fc/src/Component.ts @@ -10,10 +10,8 @@ export type TypeId = typeof TypeId export interface Component extends Pipeable.Pipeable, Component.Options { new(_: never): {} - readonly [TypeId]: TypeId readonly body: (props: P) => Effect.Effect - readonly displayName?: string } export namespace Component { @@ -22,6 +20,7 @@ export namespace Component { export type Props = T extends Component ? P : never export interface Options { + readonly displayName?: string readonly finalizerExecutionMode: "sync" | "fork" readonly finalizerExecutionStrategy: ExecutionStrategy.ExecutionStrategy } @@ -306,23 +305,6 @@ export const makeUntraced: make.Gen & make.NonGen = ( const displayNameFromBody = (body: Function) => !String.isEmpty(body.name) ? body.name : undefined - -export const withDisplayName: { - >( - displayName: string - ): (self: T) => T - >( - self: T, - displayName: string, - ): T -} = Function.dual(2, >( - self: T, - displayName: string, -): T => Object.setPrototypeOf( - { ...self, displayName }, - Object.getPrototypeOf(self), -)) - export const withOptions: { >( options: Partial diff --git a/packages/example/src/routes/dev/memo.tsx b/packages/example/src/routes/dev/memo.tsx index 3ae3fa3..c325bc8 100644 --- a/packages/example/src/routes/dev/memo.tsx +++ b/packages/example/src/routes/dev/memo.tsx @@ -3,7 +3,7 @@ import { Flex, Text, TextField } from "@radix-ui/themes" import { createFileRoute } from "@tanstack/react-router" import { GetRandomValues, makeUuid4 } from "@typed/id" import { Effect } from "effect" -import { Component, Memoized, Suspense } from "effect-fc" +import { Component, Memoized } from "effect-fc" import * as React from "react" @@ -28,17 +28,12 @@ const RouteComponent = Component.make(function* RouteComponent() { Component.withRuntime(runtime.context) ) -class SubComponent extends Component.make(function* SubComponent(props: { readonly value?: string }) { +class SubComponent extends Component.make(function* SubComponent() { const id = yield* makeUuid4.pipe(Effect.provide(GetRandomValues.CryptoRandom)) return {id} }) {} -class MemoizedSubComponent extends SubComponent.pipe( - Memoized.memo, - Suspense.suspense, - Memoized.memo, -) {} -type T = typeof MemoizedSubComponent extends Memoized.Memoized ? P : never +class MemoizedSubComponent extends Memoized.memo(SubComponent) {} export const Route = createFileRoute("/dev/memo")({ component: RouteComponent,