@peers-app/peers-ui 0.7.0 → 0.7.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/group-switcher.js +4 -0
- package/dist/globals.js +1 -1
- package/dist/screens/groups/group-list.js +4 -0
- package/dist/screens/packages/package-details.js +2 -3
- package/dist/screens/packages/package-list.js +2 -7
- package/dist/screens/packages/package-new-local.js +3 -1
- package/dist/screens/setup-user.js +6 -1
- package/package.json +3 -3
- package/src/components/group-switcher.tsx +6 -1
- package/src/globals.tsx +1 -1
- package/src/screens/groups/group-list.tsx +6 -1
- package/src/screens/packages/package-details.tsx +2 -4
- package/src/screens/packages/package-list.tsx +3 -9
- package/src/screens/packages/package-new-local.tsx +3 -1
- package/src/screens/setup-user.tsx +8 -2
|
@@ -189,6 +189,10 @@ function CreateGroupModal({ colorMode, userContext, onClose, onGroupCreated }) {
|
|
|
189
189
|
signature: '', // Will be signed by save()
|
|
190
190
|
});
|
|
191
191
|
await (0, peers_sdk_1.Groups)(groupDataContext).save(newGroup);
|
|
192
|
+
// Auto-install peers-core for the new group
|
|
193
|
+
await peers_sdk_1.rpcServerCalls.addOrUpdatePackage(peers_sdk_1.peersCorePackageId, { dataContextId: groupId }).catch((err) => {
|
|
194
|
+
console.error('Error auto-installing peers-core for group:', err);
|
|
195
|
+
});
|
|
192
196
|
// Notify parent
|
|
193
197
|
onGroupCreated(newGroup.groupId);
|
|
194
198
|
}
|
package/dist/globals.js
CHANGED
|
@@ -121,7 +121,7 @@ async function loadGlobals() {
|
|
|
121
121
|
exports.me = await (0, peers_sdk_1.getMe)();
|
|
122
122
|
await peers_sdk_1.reloadPackagesOnPageRefresh.loadingPromise;
|
|
123
123
|
if ((0, peers_sdk_1.reloadPackagesOnPageRefresh)()) {
|
|
124
|
-
await peers_sdk_1.rpcServerCalls.
|
|
124
|
+
await peers_sdk_1.rpcServerCalls.addOrUpdatePackage('updateAll');
|
|
125
125
|
}
|
|
126
126
|
await Promise.all([
|
|
127
127
|
(0, peers_sdk_1.Groups)().list().then(exports.groups),
|
|
@@ -144,6 +144,10 @@ function GroupList() {
|
|
|
144
144
|
signature: '', // calling save will sign
|
|
145
145
|
});
|
|
146
146
|
await (0, peers_sdk_1.Groups)(groupDataContext).save(group);
|
|
147
|
+
// Auto-install peers-core for the new group
|
|
148
|
+
await peers_sdk_1.rpcServerCalls.addOrUpdatePackage(peers_sdk_1.peersCorePackageId, { dataContextId: groupId }).catch((err) => {
|
|
149
|
+
console.error('Error auto-installing peers-core for group:', err);
|
|
150
|
+
});
|
|
147
151
|
(0, globals_1.mainContentPath)(`groups/${group.groupId}`);
|
|
148
152
|
return group;
|
|
149
153
|
}
|
|
@@ -30,7 +30,7 @@ const PackageDetails = (props) => {
|
|
|
30
30
|
{
|
|
31
31
|
label: 'Reload Package',
|
|
32
32
|
onClick: async () => {
|
|
33
|
-
await peers_sdk_1.rpcServerCalls.
|
|
33
|
+
await peers_sdk_1.rpcServerCalls.addOrUpdatePackage(pkg.packageId, { update: true });
|
|
34
34
|
await pkg.load();
|
|
35
35
|
window.location.reload();
|
|
36
36
|
}
|
|
@@ -43,8 +43,7 @@ const PackageDetails = (props) => {
|
|
|
43
43
|
onClick: async () => {
|
|
44
44
|
if (confirm(`Create a remote repository from this local one: ${pkg.name}`)) {
|
|
45
45
|
try {
|
|
46
|
-
await peers_sdk_1.rpcServerCalls.
|
|
47
|
-
await peers_sdk_1.rpcServerCalls.installOrUpdatePackage(pkg.packageId);
|
|
46
|
+
await peers_sdk_1.rpcServerCalls.addOrUpdatePackage(pkg.packageId, { linkRemote: true, update: true });
|
|
48
47
|
refresh(Date.now());
|
|
49
48
|
}
|
|
50
49
|
catch (err) {
|
|
@@ -91,7 +91,7 @@ const PackageList = () => {
|
|
|
91
91
|
return;
|
|
92
92
|
try {
|
|
93
93
|
addingPackage(true);
|
|
94
|
-
const packageId = await peers_sdk_1.rpcServerCalls.
|
|
94
|
+
const packageId = await peers_sdk_1.rpcServerCalls.addOrUpdatePackage(name);
|
|
95
95
|
const pkg = await (0, peers_sdk_1.Packages)().get(packageId);
|
|
96
96
|
if (pkg) {
|
|
97
97
|
(0, globals_1.mainContentPath)(`packages/${packageId}`);
|
|
@@ -110,14 +110,9 @@ const PackageList = () => {
|
|
|
110
110
|
}
|
|
111
111
|
if (!confirm(`Create or import local package: ${searchText}`))
|
|
112
112
|
return;
|
|
113
|
-
let packageFolderName = name;
|
|
114
|
-
packageFolderName = packageFolderName.replace(/[^a-zA-Z0-9]/g, ' ');
|
|
115
|
-
packageFolderName = packageFolderName.replace(/\s+/g, ' ').trim();
|
|
116
|
-
packageFolderName = (0, peers_sdk_1.camelCaseToHyphens)(packageFolderName);
|
|
117
|
-
const packageLocationDefault = (0, peers_sdk_1.packagesRootDir)() + '/' + packageFolderName;
|
|
118
113
|
try {
|
|
119
114
|
addingPackage(true);
|
|
120
|
-
const packageId = await peers_sdk_1.rpcServerCalls.
|
|
115
|
+
const packageId = await peers_sdk_1.rpcServerCalls.addOrUpdatePackage(name);
|
|
121
116
|
const pkg = await (0, peers_sdk_1.Packages)().get(packageId);
|
|
122
117
|
if (pkg) {
|
|
123
118
|
(0, globals_1.mainContentPath)(`packages/${packageId}`);
|
|
@@ -57,7 +57,9 @@ const PackageNewLocal = () => {
|
|
|
57
57
|
};
|
|
58
58
|
const createLocalPackage = async () => {
|
|
59
59
|
try {
|
|
60
|
-
const packageId = await peers_sdk_1.rpcServerCalls.
|
|
60
|
+
const packageId = await peers_sdk_1.rpcServerCalls.addOrUpdatePackage(packageName, {
|
|
61
|
+
packageLocation: packageLocation || packageLocationDefault
|
|
62
|
+
});
|
|
61
63
|
const pkg = await (0, peers_sdk_1.Packages)().get(packageId);
|
|
62
64
|
if (pkg) {
|
|
63
65
|
(0, globals_1.mainContentPath)(`packages/${packageId}`);
|
|
@@ -56,6 +56,11 @@ const SetupUser = () => {
|
|
|
56
56
|
const _userId = (0, peers_sdk_1.newid)();
|
|
57
57
|
// Call setUserIdAndSecretKey
|
|
58
58
|
await peers_sdk_1.rpcServerCalls.setUserIdAndSecretKey(_userId, keys.secretKey);
|
|
59
|
+
// Auto-install peers-core for the new user - waits for user creation to finish
|
|
60
|
+
peers_sdk_1.rpcServerCalls.addOrUpdatePackage(peers_sdk_1.peersCorePackageId, { dataContextId: _userId }).catch((err) => {
|
|
61
|
+
console.error('Error auto-installing peers-core for group:', err);
|
|
62
|
+
});
|
|
63
|
+
await (0, peers_sdk_1.sleep)(200); // give time for call to get to server before reloading
|
|
59
64
|
// Success - reload the app
|
|
60
65
|
window.location.reload();
|
|
61
66
|
}
|
|
@@ -78,7 +83,7 @@ const SetupUser = () => {
|
|
|
78
83
|
setIsValidating(true);
|
|
79
84
|
try {
|
|
80
85
|
// Validate secret key
|
|
81
|
-
const keys = (0, peers_sdk_1.
|
|
86
|
+
const keys = (0, peers_sdk_1.hydrateKeys)(secretKey);
|
|
82
87
|
const msg = (0, peers_sdk_1.newid)();
|
|
83
88
|
const msgSigned = (0, peers_sdk_1.signMessageWithSecretKey)(msg, keys.secretKey);
|
|
84
89
|
const msgOpened = (0, peers_sdk_1.openMessageWithPublicKey)(msgSigned, keys.publicKey);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@peers-app/peers-ui",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.2",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "git+https://github.com/peers-app/peers-ui.git"
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
},
|
|
28
28
|
"peerDependencies": {
|
|
29
29
|
"bootstrap": "^5.3.3",
|
|
30
|
-
"@peers-app/peers-sdk": "^0.7.
|
|
30
|
+
"@peers-app/peers-sdk": "^0.7.2",
|
|
31
31
|
"react": "^18.0.0",
|
|
32
32
|
"react-dom": "^18.0.0"
|
|
33
33
|
},
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
"jest": "^29.7.0",
|
|
58
58
|
"jest-environment-jsdom": "^30.0.5",
|
|
59
59
|
"path-browserify": "^1.0.1",
|
|
60
|
-
"@peers-app/peers-sdk": "0.7.
|
|
60
|
+
"@peers-app/peers-sdk": "0.7.2",
|
|
61
61
|
"react": "^18.0.0",
|
|
62
62
|
"react-dom": "^18.0.0",
|
|
63
63
|
"string-width": "^7.1.0",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getMe, getUserContext, Groups, IGroup, newid, newKeys, TrustLevel, UserContext, Users } from "@peers-app/peers-sdk";
|
|
1
|
+
import { getMe, getUserContext, Groups, IGroup, newid, newKeys, peersCorePackageId, rpcServerCalls, TrustLevel, UserContext, Users } from "@peers-app/peers-sdk";
|
|
2
2
|
import React, { useEffect, useState } from 'react';
|
|
3
3
|
import { usePromise } from '../hooks';
|
|
4
4
|
|
|
@@ -250,6 +250,11 @@ function CreateGroupModal({ colorMode, userContext, onClose, onGroupCreated }: C
|
|
|
250
250
|
});
|
|
251
251
|
|
|
252
252
|
await Groups(groupDataContext).save(newGroup);
|
|
253
|
+
|
|
254
|
+
// Auto-install peers-core for the new group
|
|
255
|
+
await rpcServerCalls.addOrUpdatePackage(peersCorePackageId, { dataContextId: groupId }).catch((err: any) => {
|
|
256
|
+
console.error('Error auto-installing peers-core for group:', err);
|
|
257
|
+
});
|
|
253
258
|
|
|
254
259
|
// Notify parent
|
|
255
260
|
onGroupCreated(newGroup.groupId);
|
package/src/globals.tsx
CHANGED
|
@@ -131,7 +131,7 @@ export async function loadGlobals() {
|
|
|
131
131
|
me = await getMe();
|
|
132
132
|
await reloadPackagesOnPageRefresh.loadingPromise;
|
|
133
133
|
if (reloadPackagesOnPageRefresh()) {
|
|
134
|
-
await rpcServerCalls.
|
|
134
|
+
await rpcServerCalls.addOrUpdatePackage('updateAll');
|
|
135
135
|
}
|
|
136
136
|
await Promise.all([
|
|
137
137
|
Groups().list().then(groups),
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getMe, getUserContext, Groups, ICursorIterable, IGroup, newid, newKeys, observable, rpcServerCalls, TrustLevel, Users } from "@peers-app/peers-sdk";
|
|
1
|
+
import { getMe, getUserContext, Groups, ICursorIterable, IGroup, newid, newKeys, observable, peersCorePackageId, rpcServerCalls, TrustLevel, Users } from "@peers-app/peers-sdk";
|
|
2
2
|
import React, { useEffect, useState } from 'react';
|
|
3
3
|
import { Input } from '../../components/input';
|
|
4
4
|
import { LazyList } from '../../components/lazy-list';
|
|
@@ -117,6 +117,11 @@ export function GroupList() {
|
|
|
117
117
|
});
|
|
118
118
|
await Groups(groupDataContext).save(group);
|
|
119
119
|
|
|
120
|
+
// Auto-install peers-core for the new group
|
|
121
|
+
await rpcServerCalls.addOrUpdatePackage(peersCorePackageId, { dataContextId: groupId }).catch((err: any) => {
|
|
122
|
+
console.error('Error auto-installing peers-core for group:', err);
|
|
123
|
+
});
|
|
124
|
+
|
|
120
125
|
mainContentPath(`groups/${group.groupId}`);
|
|
121
126
|
return group;
|
|
122
127
|
}
|
|
@@ -34,7 +34,7 @@ export const PackageDetails = (props: IProps) => {
|
|
|
34
34
|
{
|
|
35
35
|
label: 'Reload Package',
|
|
36
36
|
onClick: async () => {
|
|
37
|
-
await rpcServerCalls.
|
|
37
|
+
await rpcServerCalls.addOrUpdatePackage(pkg.packageId, { update: true });
|
|
38
38
|
await pkg.load();
|
|
39
39
|
window.location.reload();
|
|
40
40
|
}
|
|
@@ -47,9 +47,7 @@ export const PackageDetails = (props: IProps) => {
|
|
|
47
47
|
onClick: async () => {
|
|
48
48
|
if (confirm(`Create a remote repository from this local one: ${pkg.name}`)) {
|
|
49
49
|
try {
|
|
50
|
-
|
|
51
|
-
await rpcServerCalls.linkRemoteRepo(pkg.packageId);
|
|
52
|
-
await rpcServerCalls.installOrUpdatePackage(pkg.packageId);
|
|
50
|
+
await rpcServerCalls.addOrUpdatePackage(pkg.packageId, { linkRemote: true, update: true });
|
|
53
51
|
refresh(Date.now());
|
|
54
52
|
} catch (err) {
|
|
55
53
|
alert(`Error linking remote repo: ${err}`);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ICursorIterable, IPackage, observable, Packages, packagesRootDir, rpcServerCalls } from "@peers-app/peers-sdk";
|
|
2
2
|
import React, { useEffect, useState } from 'react';
|
|
3
3
|
import { Input } from "../../components/input";
|
|
4
4
|
import { LazyList } from "../../components/lazy-list";
|
|
@@ -57,7 +57,7 @@ export const PackageList = () => {
|
|
|
57
57
|
if (!confirm(`Add remote package: ${name}`)) return;
|
|
58
58
|
try {
|
|
59
59
|
addingPackage(true);
|
|
60
|
-
const packageId = await rpcServerCalls.
|
|
60
|
+
const packageId = await rpcServerCalls.addOrUpdatePackage(name);
|
|
61
61
|
const pkg = await Packages().get(packageId);
|
|
62
62
|
if (pkg) {
|
|
63
63
|
mainContentPath(`packages/${packageId}`);
|
|
@@ -76,15 +76,9 @@ export const PackageList = () => {
|
|
|
76
76
|
|
|
77
77
|
if (!confirm(`Create or import local package: ${searchText}`)) return;
|
|
78
78
|
|
|
79
|
-
let packageFolderName = name;
|
|
80
|
-
packageFolderName = packageFolderName.replace(/[^a-zA-Z0-9]/g, ' ');
|
|
81
|
-
packageFolderName = packageFolderName.replace(/\s+/g, ' ').trim();
|
|
82
|
-
packageFolderName = camelCaseToHyphens(packageFolderName);
|
|
83
|
-
const packageLocationDefault = packagesRootDir() + '/' + packageFolderName;
|
|
84
|
-
|
|
85
79
|
try {
|
|
86
80
|
addingPackage(true);
|
|
87
|
-
const packageId = await rpcServerCalls.
|
|
81
|
+
const packageId = await rpcServerCalls.addOrUpdatePackage(name);
|
|
88
82
|
const pkg = await Packages().get(packageId);
|
|
89
83
|
if (pkg) {
|
|
90
84
|
mainContentPath(`packages/${packageId}`);
|
|
@@ -29,7 +29,9 @@ export const PackageNewLocal = () => {
|
|
|
29
29
|
|
|
30
30
|
const createLocalPackage = async () => {
|
|
31
31
|
try {
|
|
32
|
-
const packageId = await rpcServerCalls.
|
|
32
|
+
const packageId = await rpcServerCalls.addOrUpdatePackage(packageName, {
|
|
33
|
+
packageLocation: packageLocation || packageLocationDefault
|
|
34
|
+
});
|
|
33
35
|
const pkg = await Packages().get(packageId);
|
|
34
36
|
if (pkg) {
|
|
35
37
|
mainContentPath(`packages/${packageId}`);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { hydrateKeys, isid, newid, newKeys, openMessageWithPublicKey, peersCorePackageId, rpcServerCalls, signMessageWithSecretKey, sleep } from "@peers-app/peers-sdk";
|
|
2
2
|
import React, { useState } from "react";
|
|
3
3
|
import { useObservable } from "../hooks";
|
|
4
4
|
import { colorMode } from "./settings/color-mode-dropdown";
|
|
@@ -28,6 +28,12 @@ export const SetupUser = () => {
|
|
|
28
28
|
// Call setUserIdAndSecretKey
|
|
29
29
|
await rpcServerCalls.setUserIdAndSecretKey(_userId, keys.secretKey);
|
|
30
30
|
|
|
31
|
+
// Auto-install peers-core for the new user - waits for user creation to finish
|
|
32
|
+
rpcServerCalls.addOrUpdatePackage(peersCorePackageId, { dataContextId: _userId }).catch((err: any) => {
|
|
33
|
+
console.error('Error auto-installing peers-core for group:', err);
|
|
34
|
+
});
|
|
35
|
+
await sleep(200); // give time for call to get to server before reloading
|
|
36
|
+
|
|
31
37
|
// Success - reload the app
|
|
32
38
|
window.location.reload();
|
|
33
39
|
} catch (err) {
|
|
@@ -54,7 +60,7 @@ export const SetupUser = () => {
|
|
|
54
60
|
|
|
55
61
|
try {
|
|
56
62
|
// Validate secret key
|
|
57
|
-
const keys =
|
|
63
|
+
const keys = hydrateKeys(secretKey);
|
|
58
64
|
const msg = newid();
|
|
59
65
|
const msgSigned = signMessageWithSecretKey(msg, keys.secretKey);
|
|
60
66
|
const msgOpened = openMessageWithPublicKey(msgSigned, keys.publicKey);
|