Skip to content

Commit a824b2a

Browse files
committed
feat: remove FirebaseDatabaseProvider and FirebaseDatabaseNode from preview
1 parent f28f790 commit a824b2a

File tree

3 files changed

+39
-63
lines changed

3 files changed

+39
-63
lines changed

src/components/Preview.tsx

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

src/pages/preview/index.tsx

Lines changed: 39 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,45 @@
1-
import { Preview } from '@/components/Preview'
2-
import { FirebaseDatabaseProvider } from '@react-firebase/database';
3-
import firebase from '@/lib/firebase';
1+
import { useEffect, useState } from 'react';
2+
import { DataSnapshot } from '@firebase/database-types';
3+
4+
import { db } from '@/lib/firebase';
5+
import { TextWidget } from '@/components/TextWidget';
6+
import { TimeWidget } from '@/components/TimeWidget';
7+
import { IFrameWidget } from '@/components/IFrameWidget';
8+
9+
const Widgets = {
10+
'text': TextWidget,
11+
'time': TimeWidget,
12+
'iframe': IFrameWidget,
13+
};
14+
15+
type Widget = {
16+
name: string;
17+
props: any;
18+
}
19+
20+
type WidgetList = { [key: string]: Widget }
421

522
const PreviewPage = () => {
23+
const [widgets, setWidgets] = useState<WidgetList>({});
24+
25+
useEffect(() => {
26+
db.ref('/widgets').on('value', (snap: DataSnapshot) => {
27+
if (snap?.val()) {
28+
setWidgets(snap.val());
29+
}
30+
});
31+
}, [db]);
32+
633
return (
7-
<FirebaseDatabaseProvider firebase={firebase}>
8-
<Preview />
9-
</FirebaseDatabaseProvider>
34+
<div>
35+
{
36+
Object.keys(widgets).map((id) => {
37+
const widget: any = widgets[id];
38+
const Widget = Widgets[widget.name];
39+
return <Widget key={id} {...widget.props} />
40+
})
41+
}
42+
</div>
1043
);
1144
};
1245

yarn.lock

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -852,15 +852,6 @@
852852
resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570"
853853
integrity sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=
854854

855-
"@react-firebase/database@^0.3.11":
856-
version "0.3.11"
857-
resolved "https://registry.yarnpkg.com/@react-firebase/database/-/database-0.3.11.tgz#6367a249f6cd2d85b51b95c1883254d02c49f509"
858-
integrity sha512-pVOILZwFShciopf/7CC/3rRAWcd1CQ5g0JPkhAWSiMP97fiUiaWtVrnBRtoWVY7kQqyF4G9ZyR/Wm43J9a3ZQA==
859-
dependencies:
860-
immer "^1.5.0"
861-
lodash "^4.17.11"
862-
render-and-add-props "^0.5.0"
863-
864855
"@rushstack/eslint-patch@^1.0.6":
865856
version "1.0.7"
866857
resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.0.7.tgz#82f83dcc2eb9b1e1d559b3aca96783e285eb8592"
@@ -4000,11 +3991,6 @@ image-size@1.0.0:
40003991
dependencies:
40013992
queue "6.0.2"
40023993

4003-
immer@^1.5.0:
4004-
version "1.12.1"
4005-
resolved "https://registry.yarnpkg.com/immer/-/immer-1.12.1.tgz#40c6e5b292c00560836c2993bda3a24379d466f5"
4006-
integrity sha512-3fmKM6ovaqDt0CdC9daXpNi5x/YCYS3i4cwLdTVkhJdk5jrDXoPs7lCm3IqM3yhfSnz4tjjxbRG2CziQ7m8ztg==
4007-
40083994
import-fresh@^3.0.0, import-fresh@^3.2.1:
40093995
version "3.3.0"
40103996
resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
@@ -6378,11 +6364,6 @@ registry-url@^5.0.0:
63786364
dependencies:
63796365
rc "^1.2.8"
63806366

6381-
render-and-add-props@^0.5.0:
6382-
version "0.5.0"
6383-
resolved "https://registry.yarnpkg.com/render-and-add-props/-/render-and-add-props-0.5.0.tgz#79e35b2251936ec187188322826e56401c2ef70b"
6384-
integrity sha512-jIVQsWxGDHwpMcI0d9w6OxF/GCtwL02Lyqk8aGjyF6LyR9GPLY+1ONwPjs6kbQ2d6gTApWk8aprZkBli0tpG/w==
6385-
63866367
request@^2.87.0, request@^2.88.2:
63876368
version "2.88.2"
63886369
resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3"

0 commit comments

Comments
 (0)