Skip to content

Commit f4ffa74

Browse files
committed
feat: page layer rewrite
1 parent 7f08c5d commit f4ffa74

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

62 files changed

+2445
-3074
lines changed
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
name: Jest Tests
2+
3+
on:
4+
pull_request:
5+
branches: [ main ]
6+
7+
jobs:
8+
test:
9+
runs-on: ubuntu-latest
10+
11+
steps:
12+
- name: Checkout code
13+
uses: actions/checkout@v4
14+
15+
- name: Set up Node.js
16+
uses: actions/setup-node@v4
17+
with:
18+
node-version: 20.x
19+
cache: 'npm'
20+
21+
- name: Install dependencies
22+
run: npm ci
23+
24+
- name: Run tests
25+
run: npm run test:ci

README.md

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -413,13 +413,12 @@ npm run test
413413

414414
## Roadmap
415415

416-
- [ ] Increase test coverage
417-
- [ ] Refactor page layers to be more consistent with component layers
418-
- [ ] Improve performance
419-
- [ ] Add form component definitions since we already depend on most shadcn/ui form components
420-
- [ ] Add option to add children component layers by reference to existing layers (this would be like figma component instances)
416+
- [ ] Add Blocks. Reusable component blocks that can be used in multiple pages.
417+
- [ ] Add data sources to component layers (ex, getUser() binds prop user.name)
421418
- [ ] Add event handlers to component layers (onClick, onSubmit, etc)
422-
- [ ] Add data sources to component layers (ex, getUser() sets prop user)
419+
- [ ] React 19 support
420+
- [ ] Shadcn/ui + Tailwind v4 support
421+
423422

424423
## License
425424

__tests__/clickable-wrapper.test.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22
import React from "react";
33
import { render, screen } from "@testing-library/react";
44
import { ClickableWrapper } from "@/components/ui/ui-builder/internal/clickable-wrapper";
5-
import { Layer } from "@/lib/ui-builder/store/layer-store";
5+
import { ComponentLayer } from "@/lib/ui-builder/store/layer-store";
66
import { getScrollParent } from "@/lib/ui-builder/utils/get-scroll-parent";
77

88
describe("ClickableWrapper", () => {
9-
const mockLayer: Layer = {
9+
const mockLayer: ComponentLayer = {
1010
id: "layer-1",
1111
type: "BUTTON",
1212
props: {},
@@ -75,7 +75,7 @@ describe("ClickableWrapper", () => {
7575
/>
7676
);
7777
expect(
78-
screen.getByText(mockLayer.type.replaceAll("_", ""))
78+
screen.getByText(`undefined (${mockLayer.type.replaceAll("_", "")})`)
7979
).toBeInTheDocument();
8080
});
8181

__tests__/component-registry.test.tsx

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,18 @@
11
/* eslint-disable @typescript-eslint/no-unused-vars */
22
/* eslint-disable @typescript-eslint/no-explicit-any */
33
import {
4-
componentRegistry,
5-
generateFieldOverrides,
6-
RegistryEntry,
7-
ComponentRegistry,
8-
} from "@/lib/ui-builder/registry/component-registry";
9-
import { ComponentLayer, PageLayer } from "@/lib/ui-builder/store/layer-store";
4+
generateFieldOverrides
5+
} from "@/lib/ui-builder/store/editor-utils";
6+
import { RegistryEntry } from "@/lib/ui-builder/store/editor-store";
7+
import { ComponentLayer } from "@/lib/ui-builder/store/layer-store";
108
import { FieldConfigItem } from "@/components/ui/auto-form/types";
9+
import { complexComponentDefinitions } from "@/lib/ui-builder/registry/complex-component-definitions";
10+
import { primitiveComponentDefinitions } from "@/lib/ui-builder/registry/primitive-component-definitions";
11+
12+
const componentRegistry = {
13+
...primitiveComponentDefinitions,
14+
...complexComponentDefinitions,
15+
};
1116

1217
describe("generateFieldOverrides", () => {
1318
it("should return empty object if component is not in registry", () => {
@@ -17,7 +22,7 @@ describe("generateFieldOverrides", () => {
1722
props: {},
1823
children: [],
1924
};
20-
const overrides = generateFieldOverrides(layer);
25+
const overrides = generateFieldOverrides(componentRegistry, layer);
2126
expect(overrides).toEqual({});
2227
});
2328

@@ -34,7 +39,7 @@ describe("generateFieldOverrides", () => {
3439
props: {},
3540
children: [],
3641
};
37-
const overrides = generateFieldOverrides(layer);
42+
const overrides = generateFieldOverrides(componentRegistry, layer);
3843
expect(overrides).toEqual({});
3944
});
4045

@@ -55,7 +60,7 @@ describe("generateFieldOverrides", () => {
5560
props: { title: "Original Title" },
5661
children: [],
5762
};
58-
const overrides = generateFieldOverrides(layer);
63+
const overrides = generateFieldOverrides(componentRegistry, layer);
5964
expect(overrides).toEqual({ title: mockFieldConfig });
6065
});
6166

@@ -79,7 +84,7 @@ describe("generateFieldOverrides", () => {
7984
props: { title: "Original Title", description: "Original Description" },
8085
children: [],
8186
};
82-
const overrides = generateFieldOverrides(layer);
87+
const overrides = generateFieldOverrides(componentRegistry, layer);
8388
expect(overrides).toEqual({
8489
title: mockFieldConfig1,
8590
description: mockFieldConfig2,
@@ -103,7 +108,7 @@ describe("generateFieldOverrides", () => {
103108
props: { title: "Original Title", subtitle: "Original Subtitle" },
104109
children: [],
105110
};
106-
const overrides = generateFieldOverrides(layer);
111+
const overrides = generateFieldOverrides(componentRegistry, layer);
107112
expect(overrides).toEqual({ subtitle: mockFieldConfig });
108113
});
109114
});

__tests__/components/ReactClass.tsx

Lines changed: 0 additions & 42 deletions
This file was deleted.

__tests__/components/ReactClassDependency.tsx

Lines changed: 0 additions & 22 deletions
This file was deleted.

__tests__/components/ReactClassWithExtends.tsx

Lines changed: 0 additions & 46 deletions
This file was deleted.

__tests__/components/ReactFC.tsx

Lines changed: 0 additions & 30 deletions
This file was deleted.

__tests__/components/ReactFCDependency.tsx

Lines changed: 0 additions & 16 deletions
This file was deleted.

__tests__/components/ReactFCWithExtends.tsx

Lines changed: 0 additions & 21 deletions
This file was deleted.

0 commit comments

Comments
 (0)