Skip to content

Commit 52ebcaf

Browse files
committed
v3.0.0-alpha.74
1 parent b10efa0 commit 52ebcaf

File tree

18 files changed

+278
-95
lines changed

18 files changed

+278
-95
lines changed

examples/example_pro/package.json

+7-7
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
{
22
"name": "firecms-example",
3-
"version": "3.0.0-alpha.73",
3+
"version": "3.0.0-alpha.74",
44
"private": true,
55
"type": "module",
66
"dependencies": {
7-
"@firecms/collection_editor": "^3.0.0-alpha.73",
8-
"@firecms/core": "^3.0.0-alpha.73",
9-
"@firecms/data_enhancement": "^3.0.0-alpha.73",
10-
"@firecms/data_import_export": "^3.0.0-alpha.73",
11-
"@firecms/firebase_pro": "^3.0.0-alpha.73",
12-
"@firecms/schema_inference": "^3.0.0-alpha.73",
7+
"@firecms/collection_editor": "^3.0.0-alpha.74",
8+
"@firecms/core": "^3.0.0-alpha.74",
9+
"@firecms/data_enhancement": "^3.0.0-alpha.74",
10+
"@firecms/data_import_export": "^3.0.0-alpha.74",
11+
"@firecms/firebase_pro": "^3.0.0-alpha.74",
12+
"@firecms/schema_inference": "^3.0.0-alpha.74",
1313
"firebase": "^10.7.1",
1414
"react": "^18.2.0",
1515
"react-dom": "^18.2.0",

examples/example_v3/package.json

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "firecms-example-v3",
33
"private": true,
4-
"version": "3.0.0-alpha.73",
4+
"version": "3.0.0-alpha.74",
55
"scripts": {
66
"dev": "vite",
77
"build": "vite build",
@@ -10,12 +10,12 @@
1010
"deploy": "firecms deploy"
1111
},
1212
"dependencies": {
13-
"firecms": "^3.0.0-alpha.73",
13+
"firecms": "^3.0.0-alpha.74",
1414
"react": "^18.2.0",
1515
"react-dom": "^18.2.0"
1616
},
1717
"devDependencies": {
18-
"@firecms/cli": "^3.0.0-alpha.73",
18+
"@firecms/cli": "^3.0.0-alpha.74",
1919
"@originjs/vite-plugin-federation": "^1.3.3",
2020
"@types/react": "18.2.45",
2121
"@types/react-dom": "18.2.17",
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,177 @@
1+
import React from "react";
2+
3+
import {
4+
buildCollection,
5+
Entity,
6+
EntityCollectionView,
7+
EntityReference,
8+
ReferenceWidget,
9+
useAuthController,
10+
useReferenceDialog,
11+
useSelectionController,
12+
useSideEntityController,
13+
useSnackbarController
14+
} from "firecms";
15+
import { Button, Chip, GitHubIcon, IconButton, Paper, Tooltip, Typography, } from "@firecms/ui";
16+
import { Product } from "../types";
17+
import { usersCollection } from "../collections/users_collection";
18+
19+
/**
20+
* Sample CMS view not bound to a collection, customizable by the developer
21+
* @constructor
22+
*/
23+
export function ExampleCMSView() {
24+
25+
// hook to display custom snackbars
26+
const snackbarController = useSnackbarController();
27+
28+
const selectionController = useSelectionController();
29+
30+
const [sampleSelectedProduct, setSampleSelectedProduct] = React.useState<EntityReference | null>();
31+
32+
// hook to open the side dialog that shows the entity forms
33+
const sideEntityController = useSideEntityController();
34+
35+
// hook to do operations related to authentication
36+
const authController = useAuthController();
37+
38+
// hook to open a reference dialog
39+
const referenceDialog = useReferenceDialog({
40+
path: "products",
41+
onSingleEntitySelected(entity: Entity<Product> | null) {
42+
snackbarController.open({
43+
type: "success",
44+
message: "Selected " + entity?.values.name
45+
})
46+
}
47+
});
48+
49+
const customProductCollection = buildCollection({
50+
id: "custom_product",
51+
path: "custom_product",
52+
name: "Custom products",
53+
properties: {
54+
name: {
55+
name: "Name",
56+
validation: { required: true },
57+
dataType: "string"
58+
},
59+
very_custom_field: {
60+
name: "Very custom field",
61+
dataType: "string"
62+
}
63+
}
64+
});
65+
66+
const githubLink = (
67+
<Tooltip
68+
title="Get the source code of this example view">
69+
<IconButton
70+
href={"https://github.com/firecmsco/firecms/blob/main/examples/example_v3/src/views/ExampleCMSView.tsx"}
71+
rel="noopener noreferrer"
72+
target="_blank"
73+
component={"a"}
74+
size="large">
75+
<GitHubIcon/>
76+
</IconButton>
77+
</Tooltip>
78+
);
79+
80+
return (
81+
<div className="flex h-full">
82+
<div className="m-auto flex flex-col items-center max-w-4xl">
83+
84+
<div className="flex flex-col gap-12 items-start">
85+
86+
<div className="mt-24">
87+
<h4 className="font-bold text-xl mb-4">
88+
This is an example of an additional view
89+
</h4>
90+
<p>
91+
{authController.user
92+
? <>Logged in as <Chip>{authController.user.displayName}</Chip></>
93+
: <>You are not logged in</>}
94+
</p>
95+
</div>
96+
97+
<div className="grid grid-cols-1 sm:grid-cols-3 gap-2">
98+
<Paper className={"w-full flex flex-col p-4 items-start"}>
99+
<p className="mb-4 flex-grow">
100+
Use this button to select an entity under the
101+
path <code>products</code> programmatically
102+
</p>
103+
<Button
104+
variant={"outlined"}
105+
size={"small"}
106+
onClick={referenceDialog.open}>
107+
Test reference dialog
108+
</Button>
109+
</Paper>
110+
111+
<Paper className="w-full flex flex-col p-4 items-start">
112+
<p className="mb-4 flex-grow">
113+
Use this button to open a snackbar
114+
</p>
115+
<Button
116+
variant={"outlined"}
117+
size={"small"}
118+
onClick={() => snackbarController.open({
119+
type: "success",
120+
message: "This is pretty cool"
121+
})}>
122+
Test snackbar
123+
</Button>
124+
</Paper>
125+
126+
<Paper className="w-full flex flex-col p-4 items-start">
127+
<p className="mb-4 flex-grow">
128+
Use this button to open an entity in a custom path with a custom schema
129+
</p>
130+
<Button
131+
size={"small"}
132+
variant={"outlined"}
133+
onClick={() => sideEntityController.open({
134+
entityId: "B003WT1622",
135+
path: "/products-test",
136+
collection: customProductCollection,
137+
width: 1000
138+
})}>
139+
Open custom entity
140+
</Button>
141+
</Paper>
142+
</div>
143+
144+
<div className={"w-full"}>
145+
<Typography className={"mb-4"}>
146+
You can include reference widgets in your views:
147+
</Typography>
148+
<ReferenceWidget
149+
name={"Sample reference widget"}
150+
value={sampleSelectedProduct ?? null}
151+
onReferenceSelected={({ reference, entity }) => setSampleSelectedProduct(reference)}
152+
path={"products"}
153+
size={"small"}
154+
className={"w-full"}/>
155+
</div>
156+
157+
<div className="w-full">
158+
<p className="mb-4">
159+
You can include full entity collections in your views:
160+
</p>
161+
<Paper
162+
className={"h-[400px]"}>
163+
<EntityCollectionView {...usersCollection}
164+
fullPath={"users"}
165+
selectionController={selectionController}/>
166+
</Paper>
167+
</div>
168+
169+
<div className="mt-auto">
170+
{githubLink}
171+
</div>
172+
173+
</div>
174+
</div>
175+
</div>
176+
);
177+
}

lerna.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"$schema": "node_modules/lerna/schemas/lerna-schema.json",
3-
"version": "3.0.0-alpha.73",
3+
"version": "3.0.0-alpha.74",
44
"packages": [
55
"packages/firecms",
66
"packages/firecms_core",

packages/collection_editor/package.json

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
{
22
"name": "@firecms/collection_editor",
33
"type": "module",
4-
"version": "3.0.0-alpha.73",
4+
"version": "3.0.0-alpha.74",
55
"main": "./dist/index.umd.js",
66
"module": "./dist/index.es.js",
77
"types": "dist/index.d.ts",
88
"source": "src/index.ts",
99
"dependencies": {
10-
"@firecms/data_import_export": "^3.0.0-alpha.73",
11-
"@firecms/schema_inference": "^3.0.0-alpha.73",
12-
"@firecms/ui": "^3.0.0-alpha.73",
10+
"@firecms/data_import_export": "^3.0.0-alpha.74",
11+
"@firecms/schema_inference": "^3.0.0-alpha.74",
12+
"@firecms/ui": "^3.0.0-alpha.74",
1313
"json5": "^2.2.3",
1414
"prism-react-renderer": "^2.3.0"
1515
},

packages/create_firecms_app/package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "create-firecms-app",
3-
"version": "3.0.0-alpha.73",
3+
"version": "3.0.0-alpha.74",
44
"description": "A CLI to bootstrap FireCMS",
55
"main": "src/index.ts",
66
"packageManager": "yarn@3.2.3",
@@ -27,7 +27,7 @@
2727
"author": "firecms.co",
2828
"license": "MIT",
2929
"dependencies": {
30-
"@firecms/cli": "^3.0.0-alpha.73"
30+
"@firecms/cli": "^3.0.0-alpha.74"
3131
},
3232
"devDependencies": {
3333
"@types/node": "^20.8.9",

packages/data_import_export/package.json

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
{
22
"name": "@firecms/data_import_export",
33
"type": "module",
4-
"version": "3.0.0-alpha.73",
4+
"version": "3.0.0-alpha.74",
55
"access": "public",
66
"main": "./dist/index.umd.js",
77
"module": "./dist/index.es.js",
88
"types": "./dist/index.d.ts",
99
"source": "src/index.ts",
1010
"dependencies": {
11-
"@firecms/core": "^3.0.0-alpha.73",
12-
"@firecms/schema_inference": "^3.0.0-alpha.73",
11+
"@firecms/core": "^3.0.0-alpha.74",
12+
"@firecms/schema_inference": "^3.0.0-alpha.74",
1313
"xlsx": "^0.18.5"
1414
},
1515
"peerDependencies": {

packages/firebase_firecms/package.json

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "@firecms/firebase",
33
"type": "module",
4-
"version": "3.0.0-alpha.73",
4+
"version": "3.0.0-alpha.74",
55
"publishConfig": {
66
"access": "public"
77
},
@@ -11,11 +11,11 @@
1111
"types": "./dist/index.d.ts",
1212
"source": "src/index.ts",
1313
"dependencies": {
14-
"@firecms/collection_editor": "^3.0.0-alpha.73",
15-
"@firecms/core": "^3.0.0-alpha.73",
16-
"@firecms/data_enhancement": "^3.0.0-alpha.73",
17-
"@firecms/data_import_export": "^3.0.0-alpha.73",
18-
"@firecms/schema_inference": "^3.0.0-alpha.73",
14+
"@firecms/collection_editor": "^3.0.0-alpha.74",
15+
"@firecms/core": "^3.0.0-alpha.74",
16+
"@firecms/data_enhancement": "^3.0.0-alpha.74",
17+
"@firecms/data_import_export": "^3.0.0-alpha.74",
18+
"@firecms/schema_inference": "^3.0.0-alpha.74",
1919
"firebase": "^10.7.1",
2020
"js-search": "^2.0.1",
2121
"react-router": "^6.21.0",

packages/firebase_firecms_pro/package.json

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"version": "3.0.0-alpha.73",
2+
"version": "3.0.0-alpha.74",
33
"type": "module",
44
"name": "@firecms/firebase_pro",
55
"access": "public",
@@ -9,12 +9,12 @@
99
"types": "dist/index.d.ts",
1010
"source": "src/index.ts",
1111
"dependencies": {
12-
"@firecms/core": "^3.0.0-alpha.73",
13-
"@firecms/firebase": "^3.0.0-alpha.73",
14-
"@firecms/ui": "^3.0.0-alpha.73",
12+
"@firecms/core": "^3.0.0-alpha.74",
13+
"@firecms/firebase": "^3.0.0-alpha.74",
14+
"@firecms/ui": "^3.0.0-alpha.74",
1515
"@types/node": "^20.8.9",
1616
"firebase": "^10.7.1",
17-
"firecms": "^3.0.0-alpha.73",
17+
"firecms": "^3.0.0-alpha.74",
1818
"typescript": "^5.3.3"
1919
},
2020
"peerDependencies": {

packages/firecms/bin/firecms

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
#!/usr/bin/env node
2+
require = require('esm')(module /*, options*/);
3+
require("@firecms/cli").createFireCMSApp(process.argv);

packages/firecms/package.json

+9-8
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
{
22
"name": "firecms",
33
"type": "module",
4-
"version": "3.0.0-alpha.73",
4+
"version": "3.0.0-alpha.74",
55
"publishConfig": {
66
"access": "public"
77
},
8+
"bin": "bin/firecms",
89
"keywords": [
910
"firebase",
1011
"cms",
@@ -22,12 +23,12 @@
2223
"types": "dist/index.d.ts",
2324
"source": "src/index.ts",
2425
"dependencies": {
25-
"@firecms/collection_editor": "^3.0.0-alpha.73",
26-
"@firecms/core": "^3.0.0-alpha.73",
27-
"@firecms/data_enhancement": "^3.0.0-alpha.73",
28-
"@firecms/data_import_export": "^3.0.0-alpha.73",
29-
"@firecms/firebase": "^3.0.0-alpha.73",
30-
"@firecms/schema_inference": "^3.0.0-alpha.73",
26+
"@firecms/collection_editor": "^3.0.0-alpha.74",
27+
"@firecms/core": "^3.0.0-alpha.74",
28+
"@firecms/data_enhancement": "^3.0.0-alpha.74",
29+
"@firecms/data_import_export": "^3.0.0-alpha.74",
30+
"@firecms/firebase": "^3.0.0-alpha.74",
31+
"@firecms/schema_inference": "^3.0.0-alpha.74",
3132
"firebase": "^10.7.1",
3233
"react-router": "^6.21.0",
3334
"react-router-dom": "^6.21.0"
@@ -37,7 +38,7 @@
3738
"react-dom": "^18.2.0"
3839
},
3940
"devDependencies": {
40-
"@firecms/cli": "^3.0.0-alpha.73",
41+
"@firecms/cli": "^3.0.0-alpha.74",
4142
"@types/node": "^20.8.9",
4243
"@types/react": "^18.2.45",
4344
"@types/react-dom": "^18.2.17",

packages/firecms_cli/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@firecms/cli",
3-
"version": "3.0.0-alpha.73",
3+
"version": "3.0.0-alpha.74",
44
"description": "A CLI to perform FireCMS operations",
55
"packageManager": "yarn@3.2.3",
66
"main": "./build/index.js",

0 commit comments

Comments
 (0)