File tree Expand file tree Collapse file tree 3 files changed +39
-63
lines changed Expand file tree Collapse file tree 3 files changed +39
-63
lines changed Load Diff This file was deleted.
Original file line number Diff line number Diff line change 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
522const 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
Original file line number Diff line number Diff line change 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-
40083994import-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-
63866367request@^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"
You can’t perform that action at this time.
0 commit comments