Skip to content

Commit 63de4a2

Browse files
committed
updated cosync storage react native expo
1 parent 3ce2f22 commit 63de4a2

File tree

7 files changed

+74
-97
lines changed

7 files changed

+74
-97
lines changed

.DS_Store

0 Bytes
Binary file not shown.

CosyncStorage/.DS_Store

2 KB
Binary file not shown.

CosyncStorage/ReactNative-Expo/CosyncStorageExpo/managers/RealmManager.js

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,12 @@ export const login = (userEmail, userPassword) => {
6666

6767
global.privatePartition = `user_id=${global.user.id}`;
6868

69-
resolve(user);
69+
openRealm().then( result => {
70+
resolve(user);
71+
}).catch(err => {
72+
reject(err);
73+
})
74+
7075
}).catch(err => {
7176
reject(err);
7277
})
@@ -99,7 +104,7 @@ export const openRealm = () => {
99104
}
100105

101106
let configPublic = {
102-
schema: [Schema.CosyncAsset],
107+
schema: [Schema.CosyncAsset, Schema.CosyncAssetUpload],
103108
sync: {
104109
user: global.user,
105110
partitionValue: Configure.Realm.publicPartition
@@ -114,7 +119,7 @@ export const openRealm = () => {
114119
}
115120
};
116121

117-
try {
122+
try {
118123

119124
Realm.open(configPublic).then(realm => {
120125
global.realm = realm;

CosyncStorage/ReactNative-Expo/CosyncStorageExpo/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
"react-navigation-drawer": "^2.7.2",
3838
"react-navigation-stack": "^2.10.4",
3939
"react-redux": "^7.2.8",
40-
"realm": "^10.14.0"
40+
"realm": "^10.16.0"
4141
},
4242
"devDependencies": {
4343
"@babel/core": "^7.12.9"

CosyncStorage/ReactNative-Expo/CosyncStorageExpo/screens/Asset.js

Lines changed: 53 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ import {
3636

3737
// Import Image Picker
3838
import Configure from '../config/Config';
39-
import * as RealmLib from '../managers/RealmManager';
4039
import Loader from '../components/Loader';
4140
import ProgressiveAsset from '../components/ProgressiveAsset';
4241

@@ -45,11 +44,10 @@ const Asset = props => {
4544
const [loading, setLoading] = useState(false);
4645
const [assetList, setAssetList] = useState([]);
4746

48-
//global.currentScreenIndex = 'AssetScreen';
49-
5047

5148
useEffect(() => {
52-
openRealm();
49+
50+
loadAllAssets();
5351

5452
props.navigation.addListener('didBlur', (e) =>{
5553
setAssetList(prevItems => {
@@ -58,91 +56,95 @@ const Asset = props => {
5856
if(global.sound) global.sound.stop();
5957
})
6058

61-
const naviSub = props.navigation.addListener('willFocus', openRealm);
62-
return () => {
63-
naviSub.remove();
64-
};
59+
6560

6661
}, []);
6762

6863

69-
async function openRealm(){
70-
setLoading(true);
71-
72-
global.appId = Configure.Realm.appId;
73-
74-
// if(!global.user || !global.user.id){
75-
76-
// let userEmail = await AsyncStorage.getItem('user_email');
77-
// let userPassword = await AsyncStorage.getItem('user_password');
78-
79-
// if(!userEmail || !userPassword){
80-
// props.navigation.navigate('Auth');
81-
// return;
82-
// }
64+
65+
async function loadAllAssets(){
8366

84-
// let user = await RealmLib.login(userEmail, userPassword);
85-
// AsyncStorage.setItem('user_id', user.id);
86-
87-
// }
67+
console.log('loadAllAssets .... ');
68+
setLoading(true);
69+
setAssetList(prevItems => {
70+
return [];
71+
});
8872

89-
await RealmLib.openRealmPartition(Configure.Realm.publicPartition);
90-
await RealmLib.openRealmPartition(`user_id=${global.user.id}`);
91-
92-
loadAllAssets();
73+
const assetsPublic = await global.realm.objects(Configure.Realm.cosyncAsset).filtered(`uid = '${global.user.id}'`);
74+
console.log('loadAllAssets .... assetsPublic ', assetsPublic.length);
9375

94-
setLoading(false);
95-
}
76+
let sortedAssetsPublic = assetsPublic.sorted("createdAt", false);
9677

97-
function loadAllAssets(){
78+
79+
console.log('loadAllAssets .... sortedAssetsPublic ', sortedAssetsPublic.length);
9880

99-
setAssetList(prevItems => {
100-
return [];
101-
});
81+
assetsPublic.removeListener(assetsEventListener);
82+
assetsPublic.addListener(assetsEventListener);
10283

103-
const assetsPublic = global.realmPartition[Configure.Realm.publicPartition].objects(Configure.Realm.cosyncAsset).filtered(`uid = '${global.user.id}' && status == 'active'`);
104-
let sortedAssetsPublic = assetsPublic.sorted("createdAt", false);
105-
assetsPublic.removeListener(assetsEventListener);
106-
assetsPublic.addListener(assetsEventListener);
107-
sortedAssetsPublic.forEach(element => {
84+
sortedAssetsPublic.forEach(element => {
85+
if(element.status == "active"){
10886
let item = element;
10987
item.id = element._id.toString();
11088
setAssetList(prevItems => {
11189
return [item, ...prevItems];
11290
});
113-
});
91+
}
92+
});
11493

115-
const assetsPrivate = global.realmPartition[`user_id=${global.user.id}`].objects(Configure.Realm.cosyncAsset).filtered(`status == 'active'`);
116-
let sortedResult = assetsPrivate.sorted("createdAt", false);
117-
assetsPrivate.removeListener(assetsEventListener);
118-
assetsPrivate.addListener(assetsEventListener);
94+
const assetsPrivate = global.realmPrivate.objects(Configure.Realm.cosyncAsset);
95+
console.log('loadAllAssets .... assetsPrivate ', assetsPrivate.length);
11996

120-
sortedResult.forEach(element => {
97+
let sortedResult = assetsPrivate.sorted("createdAt", false);
98+
assetsPrivate.removeListener(assetsEventListener);
99+
assetsPrivate.addListener(assetsEventListener);
100+
101+
sortedResult.forEach(element => {
102+
if(element.status == "active"){
121103
let item = element;
122104
item.id = element._id.toString();
123-
105+
124106
setAssetList(prevItems => {
125107
return [item, ...prevItems];
126108
});
127-
});
109+
}
110+
});
128111

129-
112+
setLoading(false);
130113

131114

132-
}
115+
}
133116

134117
function assetsEventListener(assets, changes) {
135118
// Update UI in response to inserted objects
136119
changes.insertions.forEach((index) => {
137120
let item = assets[index];
138121

122+
console.log("insertions ", item.status);
123+
139124
if(item.status == 'active'){
140125
item.id = item._id.toString();
141126
setAssetList(prevItems => {
142127
return [item, ...prevItems];
143128
});
144129
}
145130
});
131+
132+
changes.modifications.forEach((index) => {
133+
let item = assets[index];
134+
console.log("modifications ", item.status);
135+
if(item.status != 'active'){
136+
item.id = item._id.toString();
137+
assetList = assetList.filter(asset => asset._id != item._id);
138+
setAssetList(assetList);
139+
}
140+
else if(item.status == 'active'){
141+
item.id = item._id.toString();
142+
setAssetList(prevItems => {
143+
return [item, ...prevItems];
144+
});
145+
}
146+
147+
});
146148

147149
}
148150

CosyncStorage/ReactNative-Expo/CosyncStorageExpo/screens/Upload.js

Lines changed: 11 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -65,47 +65,24 @@ const Upload = props => {
6565
setAssetSource({type: 'image'});
6666
openRealm();
6767

68-
async function openRealm(){
69-
70-
71-
setLoading(true);
72-
global.appId = Configure.Realm.appId;
73-
74-
75-
// if(!global.user || !global.user.id){
76-
77-
// let userEmail = await AsyncStorage.getItem('user_email');
78-
// let userPassword = await AsyncStorage.getItem('user_password');
79-
80-
// if(!userEmail || !userPassword){
81-
// props.navigation.navigate('Auth');
82-
// return;
83-
// }
84-
85-
// let user = await RealmLib.login(userEmail, userPassword);
86-
// AsyncStorage.setItem('user_id', user.id);
87-
88-
// }
89-
90-
91-
68+
async function openRealm(){
9269

93-
await RealmLib.openRealmPartition(Configure.Realm.publicPartition);
94-
await RealmLib.openRealmPartition(global.privatePartition);
95-
listenCosyncAssetUpload();
96-
setLoading(false);
70+
setLoading(true);
71+
72+
listenCosyncAssetUpload();
73+
setLoading(false);
9774

9875
}
9976
}, [])
10077

10178

10279
const uploadRequest = (source) => {
10380
let uploadResult;
104-
global.realmPartition[global.privatePartition].write(() => {
81+
global.realmPrivate.write(() => {
10582

10683
let imageName = source.uri.split('/').pop();
10784
let filePath = source.type.indexOf("image") > -1 ? `images/${imageName}` : `videos/${imageName}`;
108-
uploadResult = global.realmPartition[global.privatePartition].create(Configure.Realm.cosyncAssetUpload,
85+
uploadResult = global.realmPrivate.create(Configure.Realm.cosyncAssetUpload,
10986
{
11087
_id: new ObjectId(),
11188
_partition: global.privatePartition,
@@ -119,9 +96,7 @@ const Upload = props => {
11996
createdAt: new Date().toISOString()
12097
});
12198

122-
});
123-
124-
//uploadResult.addListener(eventObjectListener);
99+
});
125100

126101
}
127102

@@ -149,10 +124,6 @@ const Upload = props => {
149124
else {
150125

151126
response.type = response.type ? response.type : 'video/quicktime';
152-
153-
console.log('launchImageLibrary ', response);
154-
155-
156127

157128
setLoading(true);
158129
setCosyncAssetUpload(null);
@@ -171,8 +142,7 @@ const Upload = props => {
171142

172143
function listenCosyncAssetUpload() {
173144
// Query realm for all instances of the "Task" type.
174-
const assets = global.realmPartition[global.privatePartition]
175-
.objects('CosyncAssetUpload').filtered(`sessionId = "${global.user.deviceId}"`);
145+
const assets = global.realmPrivate.objects('CosyncAssetUpload').filtered(`sessionId = "${global.user.deviceId}"`);
176146

177147
// Define the collection notification listener
178148
function listener(assets, changes) {
@@ -242,8 +212,8 @@ const Upload = props => {
242212

243213

244214
const updateUploadRecord = () => {
245-
global.realmPartition[global.privatePartition].write(() => {
246-
global.realmPartition[global.privatePartition].create(Configure.Realm.cosyncAssetUpload, { _id: assetUpload._id, status: "uploaded" }, "modified");
215+
realmPrivate.write(() => {
216+
realmPrivate.create(Configure.Realm.cosyncAssetUpload, { _id: assetUpload._id, status: "uploaded" }, "modified");
247217
});
248218
}
249219

CosyncStorage/ReactNative-Expo/CosyncStorageExpo/yarn.lock

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5864,7 +5864,7 @@ realm-network-transport@^0.7.2:
58645864
abort-controller "^3.0.0"
58655865
node-fetch "^2.6.0"
58665866

5867-
realm@^10.14.0, realm@^10.4.1:
5867+
realm@^10.16.0, realm@^10.4.1:
58685868
version "10.16.0"
58695869
resolved "https://registry.yarnpkg.com/realm/-/realm-10.16.0.tgz#1d33d6513e7a84e699a25095421440d83161b73c"
58705870
integrity sha512-6kS7JKs0xrFmimmiPxOhi/QGyXQg91K3I+eXIVNQYdmrcmAY5na6S1f1/MVAwd+NzA0ALl3mgGr5uCPvpiWasA==

0 commit comments

Comments
 (0)