@peers-app/peers-ui 0.13.6 → 0.14.0

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.
Files changed (84) hide show
  1. package/dist/components/left-bar.js +0 -9
  2. package/dist/components/router.js +0 -44
  3. package/dist/index.d.ts +1 -1
  4. package/dist/index.js +1 -1
  5. package/dist/mention-configs.d.ts +0 -2
  6. package/dist/mention-configs.js +1 -38
  7. package/dist/screens/search/global-search.js +2 -4
  8. package/dist/screens/workflows/workflow-details.js +5 -56
  9. package/dist/system-apps/index.d.ts +0 -4
  10. package/dist/system-apps/index.js +1 -18
  11. package/dist/ui-defaults/index.d.ts +0 -1
  12. package/dist/ui-defaults/index.js +0 -1
  13. package/dist/ui-defaults/list-screen.js +0 -1
  14. package/docs/tabs-ui.md +6 -21
  15. package/package.json +3 -3
  16. package/src/components/left-bar.tsx +0 -12
  17. package/src/components/router.tsx +0 -48
  18. package/src/index.tsx +2 -2
  19. package/src/mention-configs.ts +1 -40
  20. package/src/screens/search/global-search.tsx +2 -6
  21. package/src/screens/workflows/workflow-details.tsx +3 -28
  22. package/src/system-apps/index.ts +0 -14
  23. package/src/ui-defaults/index.ts +0 -1
  24. package/src/ui-defaults/list-screen.tsx +0 -1
  25. package/dist/screens/events/cron.d.ts +0 -3
  26. package/dist/screens/events/cron.js +0 -77
  27. package/dist/screens/events/event-details.d.ts +0 -6
  28. package/dist/screens/events/event-details.js +0 -112
  29. package/dist/screens/events/event-handlers.d.ts +0 -7
  30. package/dist/screens/events/event-handlers.js +0 -84
  31. package/dist/screens/events/event-info.d.ts +0 -5
  32. package/dist/screens/events/event-info.js +0 -19
  33. package/dist/screens/events/event-list.d.ts +0 -2
  34. package/dist/screens/events/event-list.js +0 -107
  35. package/dist/screens/events/event-schedule.d.ts +0 -5
  36. package/dist/screens/events/event-schedule.js +0 -124
  37. package/dist/screens/knowledge/knowledge-frame-details.bk.d.ts +0 -6
  38. package/dist/screens/knowledge/knowledge-frame-details.bk.js +0 -84
  39. package/dist/screens/knowledge/knowledge-frame-details.d.ts +0 -8
  40. package/dist/screens/knowledge/knowledge-frame-details.js +0 -143
  41. package/dist/screens/knowledge/knowledge-frame-list.d.ts +0 -2
  42. package/dist/screens/knowledge/knowledge-frame-list.js +0 -45
  43. package/dist/screens/knowledge/knowledge-value-details.d.ts +0 -6
  44. package/dist/screens/knowledge/knowledge-value-details.js +0 -150
  45. package/dist/screens/knowledge/knowledge-value-list-item.d.ts +0 -5
  46. package/dist/screens/knowledge/knowledge-value-list-item.js +0 -39
  47. package/dist/screens/knowledge/knowledge-value-list.d.ts +0 -3
  48. package/dist/screens/knowledge/knowledge-value-list.js +0 -123
  49. package/dist/screens/predicates/predicate-details.d.ts +0 -6
  50. package/dist/screens/predicates/predicate-details.js +0 -103
  51. package/dist/screens/predicates/predicate-list.d.ts +0 -2
  52. package/dist/screens/predicates/predicate-list.js +0 -46
  53. package/dist/screens/workflows/workflow-subscriptions.d.ts +0 -6
  54. package/dist/screens/workflows/workflow-subscriptions.js +0 -81
  55. package/dist/system-apps/events.app.d.ts +0 -2
  56. package/dist/system-apps/events.app.js +0 -8
  57. package/dist/system-apps/knowledge-frames.app.d.ts +0 -2
  58. package/dist/system-apps/knowledge-frames.app.js +0 -9
  59. package/dist/system-apps/knowledge-values.app.d.ts +0 -2
  60. package/dist/system-apps/knowledge-values.app.js +0 -9
  61. package/dist/system-apps/predicates.app.d.ts +0 -2
  62. package/dist/system-apps/predicates.app.js +0 -8
  63. package/dist/ui-defaults/notes-editor.d.ts +0 -7
  64. package/dist/ui-defaults/notes-editor.js +0 -41
  65. package/src/screens/events/cron.ts +0 -74
  66. package/src/screens/events/event-details.tsx +0 -117
  67. package/src/screens/events/event-handlers.tsx +0 -61
  68. package/src/screens/events/event-info.tsx +0 -29
  69. package/src/screens/events/event-list.tsx +0 -104
  70. package/src/screens/events/event-schedule.tsx +0 -130
  71. package/src/screens/knowledge/knowledge-frame-details.bk.tsx +0 -160
  72. package/src/screens/knowledge/knowledge-frame-details.tsx +0 -176
  73. package/src/screens/knowledge/knowledge-frame-list.tsx +0 -49
  74. package/src/screens/knowledge/knowledge-value-details.tsx +0 -181
  75. package/src/screens/knowledge/knowledge-value-list-item.tsx +0 -48
  76. package/src/screens/knowledge/knowledge-value-list.tsx +0 -131
  77. package/src/screens/predicates/predicate-details.tsx +0 -125
  78. package/src/screens/predicates/predicate-list.tsx +0 -50
  79. package/src/screens/workflows/workflow-subscriptions.tsx +0 -58
  80. package/src/system-apps/events.app.ts +0 -7
  81. package/src/system-apps/knowledge-frames.app.ts +0 -8
  82. package/src/system-apps/knowledge-values.app.ts +0 -8
  83. package/src/system-apps/predicates.app.ts +0 -7
  84. package/src/ui-defaults/notes-editor.tsx +0 -51
@@ -10,22 +10,14 @@ import { ToolTestDetails } from "../screens/tools/tool-test-details";
10
10
  import { WorkflowDetails } from "../screens/workflows/workflow-details";
11
11
  import { WorkflowList } from "../screens/workflows/workflow-list";
12
12
  import { ChannelMessages } from "./messages/channel-view";
13
- import { PeerEventList } from "../screens/events/event-list";
14
- import { PeerEventDetails } from "../screens/events/event-details";
15
13
  import { SettingsPage } from "../screens/settings/settings-page";
16
14
  import { PackageDetails } from "../screens/packages/package-details";
17
15
  import { PackageList } from "../screens/packages/package-list";
18
16
  import { PackageNewLocal } from "../screens/packages/package-new-local";
19
17
  import { VariableList } from "../screens/variables/variable-list";
20
18
  import { VariableDetails } from "../screens/variables/variable-details";
21
- import { KnowledgeFrameList } from "../screens/knowledge/knowledge-frame-list";
22
- import { KnowledgeFrameDetails } from "../screens/knowledge/knowledge-frame-details";
23
19
  import { PeerTypeLists } from "../screens/peer-types/peer-type-list";
24
20
  import { PeerTypeDetails } from "../screens/peer-types/peer-type-details";
25
- import { PredicateList } from "../screens/predicates/predicate-list";
26
- import { PredicateDetails } from "../screens/predicates/predicate-details";
27
- import { KnowledgeValueList } from "../screens/knowledge/knowledge-value-list";
28
- import { KnowledgeValueDetails } from "../screens/knowledge/knowledge-value-details";
29
21
  import { UIRouter } from "../ui-router/ui-loader";
30
22
  import { useObservable } from "../hooks";
31
23
  import { ThreadMessageList } from "./messages/thread-message-list";
@@ -126,16 +118,6 @@ export function Router({ path: providedPath }: { path?: string } = {}) {
126
118
  return <ToolDetails toolId={toolId} />;
127
119
  }
128
120
 
129
- if (path === 'events') {
130
- return <PeerEventList />;
131
- }
132
- if (path.match(/^events\//)) {
133
- const parts = path.split('/');
134
- parts.shift();
135
- const id = parts[0];
136
- return <PeerEventDetails peerEventTypeId={id} />;
137
- }
138
-
139
121
  if (path === 'packages') {
140
122
  return <PackageList />;
141
123
  }
@@ -159,26 +141,6 @@ export function Router({ path: providedPath }: { path?: string } = {}) {
159
141
  return <VariableDetails persistentVarId={id} />;
160
142
  }
161
143
 
162
- if (path === 'knowledge-values') {
163
- return <KnowledgeValueList />;
164
- }
165
- if (path.match(/^knowledge-values\/([a-zA-Z0-9]{25})/)) {
166
- const parts = path.split('/');
167
- parts.shift();
168
- const id = parts[0];
169
- return <KnowledgeValueDetails knowledgeValueId={id} />;
170
- }
171
-
172
- if (path === 'knowledge-frames') {
173
- return <KnowledgeFrameList />;
174
- }
175
- if (path.match(/^knowledge-frames\//)) {
176
- const parts = path.split('/');
177
- parts.shift();
178
- const id = parts[0];
179
- return <KnowledgeFrameDetails knowledgeFrameId={id} />;
180
- }
181
-
182
144
  if (path === 'peer-types') {
183
145
  return <PeerTypeLists />;
184
146
  }
@@ -189,16 +151,6 @@ export function Router({ path: providedPath }: { path?: string } = {}) {
189
151
  return <PeerTypeDetails peerTypeId={id} />;
190
152
  }
191
153
 
192
- if (path === 'predicates') {
193
- return <PredicateList />;
194
- }
195
- if (path.match(/^predicates\//)) {
196
- const parts = path.split('/');
197
- parts.shift();
198
- const id = parts[0];
199
- return <PredicateDetails predicateId={id} />;
200
- }
201
-
202
154
  if (path.match(/^threads\//)) {
203
155
  const parts = path.split('/');
204
156
  parts.shift();
package/src/index.tsx CHANGED
@@ -1,5 +1,4 @@
1
1
  export * from "./hooks";
2
- export * from "./screens/events/cron";
3
2
 
4
3
  export * from "./tabs-layout/tabs-layout";
5
4
  export { activeTabId, activeTabs, TabState, updateActiveTabTitle, closeCurrentTab, goToTabPath } from "./tabs-layout/tabs-state";
@@ -10,4 +9,5 @@ export * from "./components/sortable-list";
10
9
  export * from "./components/tabs";
11
10
  export * from "./components/inverse-lazy-list";
12
11
  export * from "./components/markdown-editor/editor-inline";
13
- export * from "./components/markdown-editor/editor";
12
+ export * from "./components/markdown-editor/editor";
13
+ export * from "./components/markdown-with-mentions";
@@ -1,4 +1,4 @@
1
- import { Assistants, IMentionData, PeerEventTypes, PeerTypes, Predicates, rpcClientCalls, Tools, Users, Workflows } from "@peers-app/peers-sdk";
1
+ import { Assistants, IMentionData, PeerTypes, rpcClientCalls, Tools, Users, Workflows } from "@peers-app/peers-sdk";
2
2
  // import { MENTIONS_MAX_RESULTS } from "../client/components/markdown-editor/mentions-plugin";
3
3
 
4
4
  const MENTIONS_MAX_RESULTS = 10;
@@ -89,43 +89,6 @@ export const workflowMentionConfig: IMentionConfig = {
89
89
  }),
90
90
  };
91
91
 
92
- export const peerEventTypeMentionConfig: IMentionConfig = {
93
- kind: 'event',
94
- iconClass: 'bi bi-lightning-charge-fill',
95
- styleClass: 'mention-event',
96
- query: async (search: string) => {
97
- return PeerEventTypes().list({ name: { $matchWords: search } }, { pageSize: MENTIONS_MAX_RESULTS })
98
- .then((events) => events.map((event) => ({
99
- kind: 'event' as const,
100
- id: event.peerEventTypeId,
101
- name: event.name,
102
- })));
103
- },
104
- getById: id => PeerEventTypes().get(id).then(item => item && {
105
- kind: 'event',
106
- id: item.peerEventTypeId,
107
- name: item.name
108
- }),
109
- };
110
-
111
- export const predicateMentionConfig: IMentionConfig = {
112
- kind: 'predicate',
113
- iconClass: 'bi bi-node-plus-fill',
114
- query: async (search: string) => {
115
- const results = await Predicates().list({ name: { $matchWords: search } }, { pageSize: MENTIONS_MAX_RESULTS });
116
- return results.map(p => ({
117
- kind: 'predicate',
118
- id: p.predicateId,
119
- name: p.name
120
- }));
121
- },
122
- getById: id => Predicates().get(id).then(item => item && {
123
- kind: 'predicate',
124
- id: item.predicateId,
125
- name: item.name
126
- }),
127
- };
128
-
129
92
  export const valueTypeMentionConfig: IMentionConfig = {
130
93
  kind: 'type',
131
94
  iconClass: 'bi bi-code-square',
@@ -160,7 +123,5 @@ export const mentionConfigs = [
160
123
  userMentionConfig,
161
124
  assistantMentionConfig,
162
125
  workflowMentionConfig,
163
- peerEventTypeMentionConfig,
164
- predicateMentionConfig,
165
126
  valueTypeMentionConfig,
166
127
  ];
@@ -7,8 +7,6 @@ import {
7
7
  userMentionConfig,
8
8
  assistantMentionConfig,
9
9
  workflowMentionConfig,
10
- peerEventTypeMentionConfig,
11
- predicateMentionConfig,
12
10
  valueTypeMentionConfig,
13
11
  IMentionConfig
14
12
  } from '../../mention-configs';
@@ -55,8 +53,6 @@ export function GlobalSearch() {
55
53
  { config: toolMentionConfig, category: 'Tools', navigationPath: 'tools' },
56
54
  { config: assistantMentionConfig, category: 'Assistants', navigationPath: 'assistants' },
57
55
  { config: workflowMentionConfig, category: 'Workflows', navigationPath: 'workflows' },
58
- { config: peerEventTypeMentionConfig, category: 'Events', navigationPath: 'events' },
59
- { config: predicateMentionConfig, category: 'Predicates', navigationPath: 'predicates' },
60
56
  { config: valueTypeMentionConfig, category: 'Types', navigationPath: 'peer-types' },
61
57
  { config: userMentionConfig, category: 'Users', navigationPath: 'profile' },
62
58
  ];
@@ -191,7 +187,7 @@ export function GlobalSearch() {
191
187
  ref={inputRef}
192
188
  type="text"
193
189
  className={`form-control form-control-lg ${isDark ? 'bg-dark text-light border-secondary' : ''}`}
194
- placeholder="Search across apps, tools, assistants, workflows, events, and more..."
190
+ placeholder="Search across apps, tools, assistants, workflows, and more..."
195
191
  value={searchQuery}
196
192
  onChange={(e) => setSearchQuery(e.target.value)}
197
193
  style={{
@@ -372,7 +368,7 @@ export function GlobalSearch() {
372
368
  <i className="bi-search mb-3 d-block text-muted" style={{ fontSize: '64px' }} />
373
369
  <h3 className="text-muted mb-3">Search across everything</h3>
374
370
  <p className="text-muted mb-4" style={{ maxWidth: '400px', margin: '0 auto' }}>
375
- Find apps, tools, assistants, workflows, events, predicates, types, and users all in one place.
371
+ Find apps, tools, assistants, workflows, types, and users all in one place.
376
372
  </p>
377
373
  <div className="d-flex flex-wrap justify-content-center gap-2">
378
374
  {searchConfigs.map(({ config, category }) => (
@@ -1,5 +1,5 @@
1
- import { defaultAssistantId, getAllAssistantIdsMentioned, IPeerEventHandler, IWorkflow, observable, PeerEventHandlers, runWorkflow, Workflows } from "@peers-app/peers-sdk";
2
- import React, { useState } from "react";
1
+ import { defaultAssistantId, getAllAssistantIdsMentioned, IWorkflow, runWorkflow, Workflows } from "@peers-app/peers-sdk";
2
+ import React from "react";
3
3
  import { Input } from "../../components/input";
4
4
  import { LoadingIndicator } from "../../components/loading-indicator";
5
5
  import { SaveButton } from "../../components/save-button";
@@ -9,7 +9,6 @@ import { usePromise } from "../../hooks";
9
9
  import { updateActiveTabTitle } from "../../tabs-layout/tabs-state";
10
10
  import { WorkflowInfo } from "./workflow-info";
11
11
  import { WorkflowInstructions } from "./workflow-instructions";
12
- import { WorkflowEventSubscriptions } from "./workflow-subscriptions";
13
12
 
14
13
  interface IProps {
15
14
  workflowId: string;
@@ -26,18 +25,7 @@ export const WorkflowDetails = (props: IProps) => {
26
25
  return Workflows().initDoc(workflow);
27
26
  }, undefined, [props.workflowId]);
28
27
 
29
- const [handlers] = useState(() => observable([] as IPeerEventHandler[]));
30
-
31
- const handlersLoaded = usePromise(async () => {
32
- if (!workflow) return false;
33
- const _handlers = await PeerEventHandlers().list({ handlerWorkflowId: workflow.workflowId });
34
- handlers(_handlers);
35
- return true;
36
- }, false, [workflow]);
37
-
38
- const allLoaded = !!(workflow && handlersLoaded);
39
-
40
- if (!allLoaded) {
28
+ if (!workflow) {
41
29
  return <LoadingIndicator />;
42
30
  }
43
31
 
@@ -47,13 +35,6 @@ export const WorkflowDetails = (props: IProps) => {
47
35
  const assistantsMentioned = await getAllAssistantIdsMentioned(workflow.instructions[0].markdown ?? '');
48
36
  workflow.defaultAssistantId = assistantsMentioned[0] || defaultAssistantId;
49
37
  workflow.save();
50
- const oldHandlers = await PeerEventHandlers().list({ handlerWorkflowId: workflow.workflowId });
51
- for (const oldHandler of oldHandlers) {
52
- await PeerEventHandlers().delete(oldHandler.peerEventHandlerId);
53
- }
54
- for (const handler of handlers()) {
55
- PeerEventHandlers().save(handler, { restoreIfDeleted: true });
56
- }
57
38
  }
58
39
 
59
40
  return (
@@ -107,12 +88,6 @@ export const WorkflowDetails = (props: IProps) => {
107
88
  <WorkflowInstructions workflow={workflow} />
108
89
  </ScreenTabBody>
109
90
  },
110
- {
111
- name: 'Subscriptions', content:
112
- <ScreenTabBody>
113
- <WorkflowEventSubscriptions workflow={workflow} eventSubscriptions={handlers} />
114
- </ScreenTabBody>
115
- },
116
91
  ]}
117
92
  />
118
93
  </div>
@@ -5,14 +5,10 @@ export { searchApp } from './search.app';
5
5
  export { assistantsApp } from './assistants.app';
6
6
  export { toolsApp } from './tools.app';
7
7
  export { workflowsApp } from './workflows.app';
8
- export { eventsApp } from './events.app';
9
8
  export { variablesApp } from './variables.app';
10
9
  export { typesApp } from './types.app';
11
10
  export { packagesApp } from './packages.app';
12
11
  export { threadsApp } from './threads.app';
13
- export { knowledgeValuesApp } from './knowledge-values.app';
14
- export { knowledgeFramesApp } from './knowledge-frames.app';
15
- export { predicatesApp } from './predicates.app';
16
12
  export { settingsApp } from './settings.app';
17
13
  export { groupsApp } from './groups.app';
18
14
  export { joinGroupApp } from './join-group.app';
@@ -27,14 +23,10 @@ import { searchApp } from './search.app';
27
23
  import { assistantsApp } from './assistants.app';
28
24
  import { toolsApp } from './tools.app';
29
25
  import { workflowsApp } from './workflows.app';
30
- import { eventsApp } from './events.app';
31
26
  import { variablesApp } from './variables.app';
32
27
  import { typesApp } from './types.app';
33
28
  import { packagesApp } from './packages.app';
34
29
  import { threadsApp } from './threads.app';
35
- import { knowledgeValuesApp } from './knowledge-values.app';
36
- import { knowledgeFramesApp } from './knowledge-frames.app';
37
- import { predicatesApp } from './predicates.app';
38
30
  import { settingsApp } from './settings.app';
39
31
  import { groupsApp } from './groups.app';
40
32
  import { joinGroupApp } from './join-group.app';
@@ -55,18 +47,12 @@ export const systemApps: IAppNav[] = [
55
47
  searchApp,
56
48
  threadsApp,
57
49
 
58
- // Knowledge & Data
59
- knowledgeValuesApp,
60
- knowledgeFramesApp,
61
- predicatesApp,
62
-
63
50
  // Core Management Apps
64
51
  variablesApp,
65
52
  typesApp,
66
53
  assistantsApp,
67
54
  toolsApp,
68
55
  workflowsApp,
69
- eventsApp,
70
56
  packagesApp,
71
57
  groupsApp,
72
58
  joinGroupApp,
@@ -1,4 +1,3 @@
1
1
 
2
- import './notes-editor'
3
2
  import './list-screen'
4
3
  import './markdown-field'
@@ -15,7 +15,6 @@ export const DefaultListScreen = (props: IProps) => {
15
15
  const path = mainContentPath().toLowerCase().trim().split('?')[0].split('#').pop()?.split('/')[0] || '';
16
16
  const fuzzyTableName = ({
17
17
  variables: 'persistent_vars',
18
- "events": 'peer_event_types',
19
18
  }[path] || path).replace(/[_-]/g, '').trim();
20
19
 
21
20
  const allTables = getAllTables();
@@ -1,3 +0,0 @@
1
- export declare function getCronErrors(cronExpression: string): string | false;
2
- export declare function getCronExplanation(cronExpression: string): string;
3
- export declare function getNextCronDate(cronExpression: string): Date;
@@ -1,77 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getCronErrors = getCronErrors;
7
- exports.getCronExplanation = getCronExplanation;
8
- exports.getNextCronDate = getNextCronDate;
9
- const cron_validate_1 = __importDefault(require("cron-validate"));
10
- const moment_timezone_1 = __importDefault(require("moment-timezone"));
11
- const cron_parser_1 = require("cron-parser");
12
- function getCronErrors(cronExpression) {
13
- const validationResult = (0, cron_validate_1.default)(cronExpression);
14
- if (validationResult.isError()) {
15
- const errors = validationResult.getError();
16
- const errorMarkdown = ['Validation errors:', ...errors].join('\n- ');
17
- return errorMarkdown;
18
- }
19
- let parseError = '';
20
- try {
21
- (0, cron_parser_1.parseExpression)(cronExpression);
22
- }
23
- catch (e) {
24
- parseError = e.message;
25
- }
26
- if (parseError) {
27
- return 'Validation error: ' + parseError;
28
- }
29
- return false;
30
- }
31
- function getCronExplanation(cronExpression) {
32
- if (!cronExpression) {
33
- return '';
34
- }
35
- function formatDate(date) {
36
- // let dtStr = moment
37
- return (0, moment_timezone_1.default)(date).calendar(null, {
38
- sameDay: '[Today at] LT',
39
- nextDay: '[Tomorrow at] LT',
40
- nextWeek: 'dddd [at] LT',
41
- lastDay: '[Yesterday at] LT',
42
- lastWeek: '[Last] dddd [at] LT',
43
- sameElse: 'L [at] LT'
44
- }) + `\n - \`${date.toISOString().replace(':00.000Z', 'Z')}\``;
45
- }
46
- let parsed = (0, cron_parser_1.parseExpression)(cronExpression);
47
- const strDates = [];
48
- let i = 1;
49
- while (true) {
50
- const dt = parsed.prev().toString();
51
- strDates.push(`- ${formatDate(new Date(dt))}`);
52
- i++;
53
- if (i > 3)
54
- break;
55
- }
56
- strDates.push('Prior three dates:');
57
- strDates.reverse();
58
- strDates.push('\nNext three dates:');
59
- i = 1;
60
- parsed = (0, cron_parser_1.parseExpression)(cronExpression);
61
- while (true) {
62
- const dt = parsed.next().toString();
63
- strDates.push(`- ${formatDate(new Date(dt))}`);
64
- i++;
65
- if (i > 3)
66
- break;
67
- }
68
- return strDates.join('\n');
69
- }
70
- function getNextCronDate(cronExpression) {
71
- const errors = getCronErrors(cronExpression);
72
- if (errors) {
73
- throw new Error(errors);
74
- }
75
- const parsed = (0, cron_parser_1.parseExpression)(cronExpression);
76
- return new Date(parsed.next().toString());
77
- }
@@ -1,6 +0,0 @@
1
- import React from "react";
2
- interface IProps {
3
- peerEventTypeId: string;
4
- }
5
- export declare const PeerEventDetails: (props: IProps) => React.JSX.Element;
6
- export {};
@@ -1,112 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.PeerEventDetails = void 0;
37
- const peers_sdk_1 = require("@peers-app/peers-sdk");
38
- const react_1 = __importStar(require("react"));
39
- const input_1 = require("../../components/input");
40
- const io_schema_1 = require("../../components/io-schema");
41
- const loading_indicator_1 = require("../../components/loading-indicator");
42
- const save_button_1 = require("../../components/save-button");
43
- const tabs_1 = require("../../components/tabs");
44
- const hooks_1 = require("../../hooks");
45
- const tabs_state_1 = require("../../tabs-layout/tabs-state");
46
- const event_handlers_1 = require("./event-handlers");
47
- const event_info_1 = require("./event-info");
48
- const event_schedule_1 = require("./event-schedule");
49
- const PeerEventDetails = (props) => {
50
- const peerEventType = (0, hooks_1.usePromise)(async () => {
51
- const peerEvent = await (0, peers_sdk_1.PeerEventTypes)().get(props.peerEventTypeId);
52
- if (!peerEvent) {
53
- throw new Error('Workflow not found');
54
- }
55
- const doc = (0, peers_sdk_1.PeerEventTypes)().initDoc(peerEvent);
56
- (0, tabs_state_1.updateActiveTabTitle)(doc.name || "Event");
57
- return doc;
58
- }, undefined, [props.peerEventTypeId]);
59
- const [handlers] = (0, react_1.useState)(() => (0, peers_sdk_1.observable)([]));
60
- const handlersLoaded = (0, hooks_1.usePromise)(async () => {
61
- if (!peerEventType)
62
- return false;
63
- const _handlers = await (0, peers_sdk_1.PeerEventHandlers)().list({ peerEventTypeId: peerEventType?.peerEventTypeId });
64
- handlers(_handlers);
65
- return true;
66
- }, false, [peerEventType]);
67
- const allLoaded = !!(peerEventType && handlersLoaded);
68
- if (!allLoaded) {
69
- return react_1.default.createElement(loading_indicator_1.LoadingIndicator, null);
70
- }
71
- async function saveChanges() {
72
- if (!peerEventType)
73
- return;
74
- await peerEventType.save();
75
- const oldHandlers = await (0, peers_sdk_1.PeerEventHandlers)().list({ peerEventTypeId: peerEventType.peerEventTypeId });
76
- for (const oldHandler of oldHandlers) {
77
- await (0, peers_sdk_1.PeerEventHandlers)().delete(oldHandler.peerEventHandlerId);
78
- }
79
- for (const handler of handlers()) {
80
- (0, peers_sdk_1.PeerEventHandlers)().save(handler, { restoreIfDeleted: true });
81
- }
82
- }
83
- return (react_1.default.createElement("div", { className: "container-fluid p-3" },
84
- react_1.default.createElement("div", { className: "d-flex" },
85
- react_1.default.createElement("div", null,
86
- react_1.default.createElement("h4", null,
87
- react_1.default.createElement("i", { className: "bi bi-lightning-charge-fill me-2" }))),
88
- react_1.default.createElement("div", { className: "flex-grow-1" },
89
- react_1.default.createElement("h4", null,
90
- react_1.default.createElement(input_1.Input, { key: peerEventType.peerEventTypeId, className: 'border border-0', style: { width: '100%', outline: 'none', backgroundColor: 'transparent' }, value: peerEventType.qs.name }))),
91
- react_1.default.createElement("div", null,
92
- react_1.default.createElement(save_button_1.SaveButton, { key: peerEventType.peerEventTypeId, onClick: saveChanges, doc: peerEventType }))),
93
- react_1.default.createElement(tabs_1.Tabs, { key: peerEventType.peerEventTypeId, tabs: [
94
- {
95
- name: 'Info', content: react_1.default.createElement(tabs_1.ScreenTabBody, null,
96
- react_1.default.createElement(event_info_1.PeerEventInfo, { peerEventType: peerEventType }))
97
- },
98
- {
99
- name: 'Schema', content: react_1.default.createElement(tabs_1.ScreenTabBody, null,
100
- react_1.default.createElement(io_schema_1.IOSchemaEditor, { ioSchema: peerEventType.qs.schema, simpleValueName: "Event" }))
101
- },
102
- {
103
- name: 'Triggers', content: react_1.default.createElement(tabs_1.ScreenTabBody, null,
104
- react_1.default.createElement(event_schedule_1.PeerEventSchedule, { peerEventType: peerEventType }))
105
- },
106
- {
107
- name: 'Handlers', content: react_1.default.createElement(tabs_1.ScreenTabBody, null,
108
- react_1.default.createElement(event_handlers_1.PeerEventHandlersUI, { peerEventType: peerEventType, handlers: handlers }))
109
- },
110
- ] })));
111
- };
112
- exports.PeerEventDetails = PeerEventDetails;
@@ -1,7 +0,0 @@
1
- import { Observable } from "@peers-app/peers-sdk";
2
- import React from "react";
3
- import { IDoc, IPeerEventHandler, IPeerEventType } from "@peers-app/peers-sdk";
4
- export declare const PeerEventHandlersUI: (props: {
5
- peerEventType: IDoc<IPeerEventType>;
6
- handlers: Observable<IPeerEventHandler[]>;
7
- }) => React.JSX.Element;
@@ -1,84 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.PeerEventHandlersUI = void 0;
37
- const peers_sdk_1 = require("@peers-app/peers-sdk");
38
- const lodash_1 = require("lodash");
39
- const react_1 = __importStar(require("react"));
40
- const peers_sdk_2 = require("@peers-app/peers-sdk");
41
- const tooltip_1 = require("../../components/tooltip");
42
- const editor_inline_1 = require("../../components/markdown-editor/editor-inline");
43
- const loading_indicator_1 = require("../../components/loading-indicator");
44
- const peers_sdk_3 = require("@peers-app/peers-sdk");
45
- const hooks_1 = require("../../hooks");
46
- const PeerEventHandlersUI = (props) => {
47
- const { peerEventType, handlers } = props;
48
- const [handlersMarkdown] = (0, react_1.useState)(() => (0, peers_sdk_1.observable)(''));
49
- const markdownInitialized = (0, hooks_1.usePromise)(async () => {
50
- const workflowIds = handlers().map(h => h.handlerWorkflowId);
51
- const handlerWorkflows = await (0, peers_sdk_2.Workflows)().list({ workflowId: { $in: workflowIds } });
52
- const workflowTitles = handlerWorkflows.reduce((acc, wf) => ({ ...acc, [wf.workflowId]: wf.name }), {});
53
- const mentions = workflowIds.map(workflowId => '- ' + (0, peers_sdk_3.formatMention)({ kind: 'workflow', id: workflowId, name: workflowTitles[workflowId] ?? workflowId }));
54
- const markdown = `${mentions.join('\n') || '- '}`;
55
- handlersMarkdown(markdown);
56
- return true;
57
- });
58
- (0, hooks_1.useSubscription)(handlersMarkdown, () => {
59
- if (!markdownInitialized)
60
- return;
61
- const startWorkflowIds = handlers().map(h => h.handlerWorkflowId);
62
- const workflowIds = (0, peers_sdk_3.getAllMentions)(handlersMarkdown()).filter(m => m.kind === 'workflow').map(m => m.id);
63
- if ((0, lodash_1.isEqual)(startWorkflowIds, workflowIds))
64
- return;
65
- const newHandlers = workflowIds.map(workflowId => ({
66
- peerEventHandlerId: (0, peers_sdk_2.newid)(),
67
- peerEventTypeId: peerEventType.peerEventTypeId,
68
- handlerWorkflowId: workflowId,
69
- }));
70
- handlers(newHandlers);
71
- peerEventType.q(peerEventType.q() + 1);
72
- console.log('new handlers', newHandlers.map(h => h.handlerWorkflowId));
73
- });
74
- if (!markdownInitialized) {
75
- return react_1.default.createElement(loading_indicator_1.LoadingIndicator, null);
76
- }
77
- return (react_1.default.createElement("div", null,
78
- react_1.default.createElement("div", { className: 'mt-2' },
79
- react_1.default.createElement("small", null, "Mention workflows this event should trigger:"),
80
- react_1.default.createElement("small", null,
81
- react_1.default.createElement(tooltip_1.Tooltip, { markdownContent: `The mentions will be reformatted as a bulleted list regardless of how they are entered. All other content except for workflow mentions will be discarded.` })),
82
- react_1.default.createElement(editor_inline_1.MarkdownEditorInline, { value: handlersMarkdown }))));
83
- };
84
- exports.PeerEventHandlersUI = PeerEventHandlersUI;
@@ -1,5 +0,0 @@
1
- import React from "react";
2
- import { IDoc, IPeerEventType } from "@peers-app/peers-sdk";
3
- export declare const PeerEventInfo: (props: {
4
- peerEventType: IDoc<IPeerEventType>;
5
- }) => React.JSX.Element;
@@ -1,19 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.PeerEventInfo = void 0;
7
- const react_1 = __importDefault(require("react"));
8
- const editor_inline_1 = require("../../components/markdown-editor/editor-inline");
9
- const input_1 = require("../../components/input");
10
- const PeerEventInfo = (props) => {
11
- const { peerEventType } = props;
12
- return (react_1.default.createElement("div", null,
13
- react_1.default.createElement("small", null, "Name:"),
14
- react_1.default.createElement(input_1.Input, { value: peerEventType.qs.name, className: "form-control mb-3 p-0 ps-2", placeholder: "Event name", title: "Event name" }),
15
- react_1.default.createElement("div", { className: 'mt-2' },
16
- react_1.default.createElement("small", null, "Description:"),
17
- react_1.default.createElement(editor_inline_1.MarkdownEditorInline, { value: peerEventType.qs.description }))));
18
- };
19
- exports.PeerEventInfo = PeerEventInfo;
@@ -1,2 +0,0 @@
1
- import React from 'react';
2
- export declare function PeerEventList(): React.JSX.Element;