feat(solid): add SolidJS bindings package and comprehensive examples#69
Open
kattsushi wants to merge 3 commits intolucas-barake:mainfrom
Open
feat(solid): add SolidJS bindings package and comprehensive examples#69kattsushi wants to merge 3 commits intolucas-barake:mainfrom
kattsushi wants to merge 3 commits intolucas-barake:mainfrom
Conversation
Introduce a new @lucas-barake/effect-form-solid package providing SolidJS bindings for the Effect-powered form library. The package includes: - Full integration with SolidJS reactive primitives - Support for both manual and auto-submit form modes - Comprehensive test suite covering debouncing, race conditions, and edge cases - Proper TypeScript configuration with SolidJS JSX support - Build configuration with Babel for SolidJS compatibility The implementation reuses the core form logic from @lucas-barake/effect-form while providing a SolidJS-specific API surface with components and hooks.
Add comprehensive example applications for both React and SolidJS frameworks to demonstrate the usage of the effect-form library. Each example includes: - Complete project setup with Vite, TypeScript, and framework-specific configuration - Eight interactive form examples covering basic forms, validation modes, array fields, cross-field validation, async validation, auto-submit, multi-step wizards, and revert changes functionality - Shared CSS styling and reusable components - Proper workspace configuration in pnpm-workspace.yaml - Dependency management with workspace package references The examples showcase the full capabilities of the form library including type-safe error handling, Effect services integration, and framework-specific implementations.
Owner
|
Thanks for opening this! I'll take a look when I get some time. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
This PR introduces full SolidJS support to the
effect-formecosystem. It adds a new@lucas-barake/effect-form-solidpackage with idiomatic SolidJS bindings and a dedicatedexamples/solidworkspace containing 8 comprehensive example applications. This expansion allows SolidJS developers to leverage the same type-safe, Effect-powered form validation logic available to React users.Changes
📦 New Package:
@lucas-barake/effect-form-solidFormSolidcomponents and hooks that integrateeffect-formcore logic with SolidJS reactivity (Signals, Stores).onChange,onBlur,onSubmit).@solidjs/testing-library.🌟 New Workspace:
examples/solidData.TaggedErrorhandling.<For>..merge().🔧 Configuration & Fixes
examples/solidtopnpm-workspace.yaml.vite.config.tsandtsconfig.jsonfor SolidJS compatibility (JSX preserve, alias resolution).baseUrlandmainentry point issues inpackage.jsonfor@effectify/solid-effect-atom.testscripts across packages (vitest run).Technical Details
useState,useEffect) to Solid primitives (createSignal,createEffect) while maintaining the same functional requirements.<Show>and<For>control flow components for efficient rendering.allowImportingTsExtensionsenabled for local dev).Verification
pnpm buildpasses for all workspaces.pnpm testpasses forform-reactandform-solid(100% success rate).examples/solidbuilds successfully and runs in the browser.examples/reactremains unaffected and fully functional.