11import React , { useEffect } from 'react' ;
22import './App.css' ;
3- import { useAgile , useWatcher , useProxy } from '@agile-ts/react' ;
3+ import { useAgile , useWatcher , useProxy , useSelector } from '@agile-ts/react' ;
44import { useEvent } from '@agile-ts/event' ;
55import {
66 COUNTUP ,
7+ externalCreatedItem ,
78 MY_COLLECTION ,
89 MY_COMPUTED ,
910 MY_EVENT ,
@@ -12,7 +13,7 @@ import {
1213 MY_STATE_3 ,
1314 STATE_OBJECT ,
1415} from './core' ;
15- import { generateId , globalBind } from '@agile-ts/core' ;
16+ import { generateId , globalBind , Item } from '@agile-ts/core' ;
1617
1718let rerenderCount = 0 ;
1819let rerenderCountInCountupView = 0 ;
@@ -42,11 +43,14 @@ const App = (props: any) => {
4243 ] ) ;
4344 const [ myGroup ] = useAgile ( [ MY_COLLECTION . getGroupWithReference ( 'myGroup' ) ] ) ;
4445
45- const [ stateObject , item2 , collection2 ] = useProxy ( [
46- STATE_OBJECT ,
47- MY_COLLECTION . getItem ( 'id2' ) ,
48- MY_COLLECTION ,
49- ] ) ;
46+ const selectedObjectItem = useSelector ( STATE_OBJECT , ( value ) => {
47+ return value . age ;
48+ } ) ;
49+
50+ const [ stateObject , item2 , collection2 ] = useProxy (
51+ [ STATE_OBJECT , MY_COLLECTION . getItem ( 'id2' ) , MY_COLLECTION ] ,
52+ { key : 'useProxy' }
53+ ) ;
5054
5155 console . log ( 'Item1: ' , item2 ?. name ) ;
5256 console . log ( 'Collection: ' , collection2 . slice ( 0 , 2 ) ) ;
@@ -106,7 +110,8 @@ const App = (props: any) => {
106110 < div className = { 'Container' } >
107111 < h3 className = { 'Title' } > My State Object</ h3 >
108112 < p >
109- Deep Name: { stateObject . friends . hans . name } { stateObject . location }
113+ Deep Name: { stateObject ?. friends ?. hans ?. name } { ' ' }
114+ { stateObject ?. location }
110115 </ p >
111116 < button
112117 onClick = { ( ) => {
@@ -132,21 +137,29 @@ const App = (props: any) => {
132137 < div className = { 'Container' } >
133138 < h3 className = { 'Title' } > My Collection</ h3 >
134139 < div >
135- { myGroup . map ( ( item ) => (
136- < p key = { item . id } > { item . name } </ p >
140+ { myGroup ? .map ( ( item ) => (
141+ < p key = { item . key } > { item . name } </ p >
137142 ) ) }
138143 </ div >
139144 < button
140- onClick = { ( ) => MY_COLLECTION . collect ( { id : 'id3' , name : 'Test3' } ) } >
145+ onClick = { ( ) =>
146+ MY_COLLECTION . collect ( { key : 'id3' , name : 'Test3' } )
147+ } >
141148 Collect
142149 </ button >
150+ < button
151+ onClick = { ( ) =>
152+ MY_COLLECTION . collect ( externalCreatedItem , [ 'myGroup' ] )
153+ } >
154+ Collect external Item
155+ </ button >
143156 < button onClick = { ( ) => MY_COLLECTION . getGroup ( 'myGroup' ) ?. add ( 'id3' ) } >
144157 Add to myGroup
145158 </ button >
146159 < button
147160 onClick = { ( ) =>
148161 MY_COLLECTION . update ( 'id3' , {
149- id : 'newId3' ,
162+ key : 'newId3' ,
150163 name : 'Test3_Changed' ,
151164 } )
152165 } >
0 commit comments