@@ -78,8 +78,8 @@ const Asset = props => {
78
78
79
79
console . log ( 'loadAllAssets .... sortedAssetsPublic ' , sortedAssetsPublic . length ) ;
80
80
81
- assetsPublic . removeListener ( assetsEventListener ) ;
82
- assetsPublic . addListener ( assetsEventListener ) ;
81
+ assetsPublic . removeListener ( changeAssetEvent ) ;
82
+ assetsPublic . addListener ( changeAssetEvent ) ;
83
83
84
84
sortedAssetsPublic . forEach ( element => {
85
85
if ( element . status == "active" ) {
@@ -95,8 +95,8 @@ const Asset = props => {
95
95
console . log ( 'loadAllAssets .... assetsPrivate ' , assetsPrivate . length ) ;
96
96
97
97
let sortedResult = assetsPrivate . sorted ( "createdAt" , false ) ;
98
- assetsPrivate . removeListener ( assetsEventListener ) ;
99
- assetsPrivate . addListener ( assetsEventListener ) ;
98
+ assetsPrivate . removeListener ( changeAssetEvent ) ;
99
+ assetsPrivate . addListener ( changeAssetEvent ) ;
100
100
101
101
sortedResult . forEach ( element => {
102
102
if ( element . status == "active" ) {
@@ -112,6 +112,28 @@ const Asset = props => {
112
112
setLoading ( false ) ;
113
113
114
114
115
+ }
116
+
117
+ function changeAssetEvent ( assets , changes ) {
118
+
119
+ if ( changes . insertions . length || changes . modifications . length || changes . deletions . length ) {
120
+
121
+ setAssetList ( prevItems => {
122
+ return [ ] ;
123
+ } ) ;
124
+
125
+ assets . forEach ( element => {
126
+
127
+ if ( element . status == "active" ) {
128
+ let item = element ;
129
+ item . id = element . _id . toString ( ) ;
130
+
131
+ setAssetList ( prevItems => {
132
+ return [ item , ...prevItems ] ;
133
+ } ) ;
134
+ }
135
+ } ) ;
136
+ }
115
137
}
116
138
117
139
function assetsEventListener ( assets , changes ) {
@@ -130,12 +152,29 @@ const Asset = props => {
130
152
} ) ;
131
153
132
154
changes . modifications . forEach ( ( index ) => {
155
+
133
156
let item = assets [ index ] ;
134
157
console . log ( "modifications " , item . status ) ;
158
+ console . log ( "modifications: id " , item . _id )
159
+ console . log ( "modifications: assetList " , assetList . length )
160
+
135
161
if ( item . status != 'active' ) {
136
- item . id = item . _id . toString ( ) ;
137
- assetList = assetList . filter ( asset => asset . _id != item . _id ) ;
138
- setAssetList ( assetList ) ;
162
+ let itemId = item . _id . toString ( ) ;
163
+ setAssetList ( existingItems => {
164
+
165
+ console . log ( "existingItems " , existingItems . length ) ;
166
+
167
+ return existingItems . filter ( ( asset ) => {
168
+
169
+
170
+ console . log ( "existingItems asset " , asset . _id ) ;
171
+
172
+
173
+ asset . _id !== itemId
174
+ } ) ;
175
+ } ) ;
176
+
177
+
139
178
}
140
179
else if ( item . status == 'active' ) {
141
180
item . id = item . _id . toString ( ) ;
@@ -145,6 +184,17 @@ const Asset = props => {
145
184
}
146
185
147
186
} ) ;
187
+
188
+ changes . deletions . forEach ( ( index ) => {
189
+
190
+
191
+ setAssetList ( existingItems => {
192
+ console . log ( "existingItems " , existingItems . length ) ;
193
+
194
+ return existingItems . filter ( ( item , i ) => i !== index ) ;
195
+ } )
196
+
197
+ } ) ;
148
198
149
199
}
150
200
0 commit comments