@agent-native/core 0.128.1 → 0.128.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/corpus/README.md +1 -1
- package/corpus/core/CHANGELOG.md +6 -0
- package/corpus/core/package.json +2 -1
- package/corpus/core/src/server/email-template.ts +33 -0
- package/corpus/templates/chat/_gitignore +2 -0
- package/corpus/templates/clips/AGENTS.md +6 -1
- package/corpus/templates/clips/actions/complete-transactional-email-summary.ts +56 -0
- package/corpus/templates/clips/actions/import-loom-recording.ts +258 -76
- package/corpus/templates/clips/actions/lib/direct-video.ts +96 -0
- package/corpus/templates/clips/actions/lib/loom-import-job.ts +53 -2
- package/corpus/templates/clips/actions/lib/loom-video.ts +2 -62
- package/corpus/templates/clips/actions/lib/video-download-limits.ts +62 -0
- package/corpus/templates/clips/actions/list-transactional-email-ai-requests.ts +249 -0
- package/corpus/templates/clips/app/components/library/library-grid.tsx +65 -0
- package/corpus/templates/clips/app/components/library/library-layout.tsx +55 -0
- package/corpus/templates/clips/app/components/recorder/pre-record-panel.tsx +28 -126
- package/corpus/templates/clips/app/global.css +23 -0
- package/corpus/templates/clips/app/hooks/use-transactional-email-bridge.ts +98 -0
- package/corpus/templates/clips/app/i18n/en-US.ts +20 -0
- package/corpus/templates/clips/app/routes/_app.tsx +2 -0
- package/corpus/templates/clips/app/routes/import.tsx +396 -0
- package/corpus/templates/clips/app/routes/r.$recordingId.tsx +8 -6
- package/corpus/templates/clips/app/routes/record.tsx +13 -71
- package/corpus/templates/clips/changelog/2026-07-25-two-clip-emails-now-include-a-concise-summary-generated-secu.md +6 -0
- package/corpus/templates/clips/data/clips-transactional-emails/config.json +3 -0
- package/corpus/templates/clips/server/jobs/transactional-emails.ts +1034 -0
- package/corpus/templates/clips/server/lib/transactional-email-store.ts +865 -0
- package/corpus/templates/clips/server/lib/transactional-email-templates.ts +270 -0
- package/corpus/templates/clips/server/plugins/calendar-jobs.ts +2 -0
- package/corpus/templates/clips/server/routes/api/view-event.post.ts +59 -2
- package/corpus/templates/content/.agents/skills/document-editing/references/databases.md +8 -2
- package/corpus/templates/content/AGENTS.md +8 -0
- package/corpus/templates/content/actions/_content-database-personal-view.ts +28 -3
- package/corpus/templates/content/actions/_property-utils.ts +32 -2
- package/corpus/templates/content/actions/configure-document-property.ts +12 -2
- package/corpus/templates/content/actions/delete-document-property.ts +13 -3
- package/corpus/templates/content/actions/duplicate-document-property.ts +13 -3
- package/corpus/templates/content/actions/list-content-spaces.ts +5 -2
- package/corpus/templates/content/actions/list-document-properties.ts +12 -3
- package/corpus/templates/content/actions/move-database-item.ts +74 -55
- package/corpus/templates/content/actions/reorder-document-property.ts +20 -4
- package/corpus/templates/content/actions/set-document-property.ts +10 -1
- package/corpus/templates/content/actions/update-content-database-personal-view.ts +7 -0
- package/corpus/templates/content/app/components/editor/DocumentBlockFields.tsx +31 -21
- package/corpus/templates/content/app/components/editor/DocumentEditor.tsx +30 -3
- package/corpus/templates/content/app/components/editor/DocumentInfoPanel.tsx +8 -1
- package/corpus/templates/content/app/components/editor/DocumentProperties.tsx +72 -20
- package/corpus/templates/content/app/components/editor/database/DatabaseView.tsx +79 -10
- package/corpus/templates/content/app/components/editor/database/TimelineView.tsx +8 -1
- package/corpus/templates/content/app/components/editor/database/settings.tsx +6 -0
- package/corpus/templates/content/app/components/editor/database/sidebar.tsx +246 -26
- package/corpus/templates/content/app/components/sidebar/DocumentSidebar.tsx +491 -197
- package/corpus/templates/content/app/components/sidebar/DocumentTreeItem.tsx +3 -3
- package/corpus/templates/content/app/components/sidebar/sidebar-reorder.tsx +409 -0
- package/corpus/templates/content/app/hooks/use-content-database.ts +117 -3
- package/corpus/templates/content/app/hooks/use-content-spaces.ts +1 -0
- package/corpus/templates/content/app/hooks/use-document-properties.ts +62 -18
- package/corpus/templates/content/app/hooks/use-documents.ts +13 -5
- package/corpus/templates/content/app/i18n-data.ts +261 -3
- package/corpus/templates/content/app/routes/_app.page.$id.tsx +9 -2
- package/corpus/templates/content/changelog/2026-07-24-database-page-properties-keep-their-context.md +6 -0
- package/corpus/templates/content/changelog/2026-07-26-sidebar-references-can-now-be-personally-reordered.md +6 -0
- package/corpus/templates/content/docs/solutions/2026-07-24-database-property-context-switch-diagnosis.md +249 -0
- package/corpus/templates/content/docs/solutions/content-sidebar-order-shape.md +389 -0
- package/corpus/templates/content/shared/api.ts +28 -0
- package/corpus/toolkit/CHANGELOG.md +6 -0
- package/corpus/toolkit/package.json +1 -1
- package/corpus/toolkit/src/editor/DragHandle.ts +63 -9
- package/dist/collab/struct-routes.d.ts +1 -1
- package/dist/observability/routes.d.ts +3 -3
- package/dist/server/agent-engine-api-key-route.d.ts +1 -1
- package/dist/server/email-template.d.ts +7 -0
- package/dist/server/email-template.d.ts.map +1 -1
- package/dist/server/email-template.js +24 -0
- package/dist/server/email-template.js.map +1 -1
- package/dist/server/transcribe-voice.d.ts +1 -1
- package/dist/templates/chat/_gitignore +2 -0
- package/package.json +4 -3
- package/src/server/email-template.ts +33 -0
- package/src/templates/chat/_gitignore +2 -0
|
@@ -12,7 +12,7 @@ import type {
|
|
|
12
12
|
ReorderDocumentPropertyRequest,
|
|
13
13
|
SetDocumentPropertyRequest,
|
|
14
14
|
} from "@shared/api";
|
|
15
|
-
import { useQueryClient } from "@tanstack/react-query";
|
|
15
|
+
import { useQueryClient, type UseMutationResult } from "@tanstack/react-query";
|
|
16
16
|
|
|
17
17
|
import {
|
|
18
18
|
applyDocumentPropertiesToDatabaseResponse,
|
|
@@ -21,13 +21,51 @@ import {
|
|
|
21
21
|
contentDatabaseQueryKey,
|
|
22
22
|
removeDocumentPropertyFromDatabaseResponse,
|
|
23
23
|
} from "./use-content-database";
|
|
24
|
+
import { documentPropertiesQueryKey } from "./use-documents";
|
|
24
25
|
|
|
25
|
-
|
|
26
|
+
type DatabaseScopedRequest = { databaseId: string };
|
|
27
|
+
|
|
28
|
+
export function documentPropertiesResponseMatchesScope(
|
|
29
|
+
documentId: string,
|
|
30
|
+
databaseId: string,
|
|
31
|
+
data: DocumentPropertiesResponse | undefined,
|
|
32
|
+
): data is DocumentPropertiesResponse {
|
|
33
|
+
return data?.documentId === documentId && data.databaseId === databaseId;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
function withDatabaseScope<
|
|
37
|
+
TData,
|
|
38
|
+
TVariables extends DatabaseScopedRequest,
|
|
39
|
+
TContext,
|
|
40
|
+
>(
|
|
41
|
+
mutation: UseMutationResult<TData, Error, TVariables, TContext>,
|
|
42
|
+
databaseId: string,
|
|
43
|
+
) {
|
|
44
|
+
type ScopedVariables = Omit<TVariables, "databaseId">;
|
|
45
|
+
return {
|
|
46
|
+
...mutation,
|
|
47
|
+
mutate: (variables: ScopedVariables, options?: unknown) =>
|
|
48
|
+
mutation.mutate(
|
|
49
|
+
{ ...variables, databaseId } as TVariables,
|
|
50
|
+
options as never,
|
|
51
|
+
),
|
|
52
|
+
mutateAsync: (variables: ScopedVariables, options?: unknown) =>
|
|
53
|
+
mutation.mutateAsync(
|
|
54
|
+
{ ...variables, databaseId } as TVariables,
|
|
55
|
+
options as never,
|
|
56
|
+
),
|
|
57
|
+
} as UseMutationResult<TData, Error, ScopedVariables, TContext>;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export function useDocumentProperties(
|
|
61
|
+
documentId: string | null,
|
|
62
|
+
databaseId: string | null,
|
|
63
|
+
) {
|
|
26
64
|
return useActionQuery<DocumentPropertiesResponse>(
|
|
27
65
|
"list-document-properties",
|
|
28
|
-
documentId ? { documentId } : undefined,
|
|
66
|
+
documentId && databaseId ? { documentId, databaseId } : undefined,
|
|
29
67
|
{
|
|
30
|
-
enabled: !!documentId,
|
|
68
|
+
enabled: !!documentId && !!databaseId,
|
|
31
69
|
placeholderData: (prev) => prev,
|
|
32
70
|
},
|
|
33
71
|
);
|
|
@@ -35,10 +73,11 @@ export function useDocumentProperties(documentId: string | null) {
|
|
|
35
73
|
|
|
36
74
|
export function useConfigureDocumentProperty(
|
|
37
75
|
documentId: string,
|
|
76
|
+
databaseId: string,
|
|
38
77
|
databaseDocumentId = documentId,
|
|
39
78
|
) {
|
|
40
79
|
const queryClient = useQueryClient();
|
|
41
|
-
|
|
80
|
+
const mutation = useActionMutation<
|
|
42
81
|
DocumentPropertiesResponse,
|
|
43
82
|
ConfigureDocumentPropertyRequest
|
|
44
83
|
>("configure-document-property", {
|
|
@@ -49,7 +88,7 @@ export function useConfigureDocumentProperty(
|
|
|
49
88
|
(current) => applyDocumentPropertiesToDatabaseResponse(current, data),
|
|
50
89
|
);
|
|
51
90
|
queryClient.invalidateQueries({
|
|
52
|
-
queryKey:
|
|
91
|
+
queryKey: documentPropertiesQueryKey(documentId, databaseId),
|
|
53
92
|
});
|
|
54
93
|
queryClient.invalidateQueries({
|
|
55
94
|
queryKey: ["action", "get-document", { id: documentId }],
|
|
@@ -59,14 +98,16 @@ export function useConfigureDocumentProperty(
|
|
|
59
98
|
});
|
|
60
99
|
},
|
|
61
100
|
});
|
|
101
|
+
return withDatabaseScope(mutation, databaseId);
|
|
62
102
|
}
|
|
63
103
|
|
|
64
104
|
export function useSetDocumentProperty(
|
|
65
105
|
documentId: string,
|
|
106
|
+
databaseId: string,
|
|
66
107
|
databaseDocumentId = documentId,
|
|
67
108
|
) {
|
|
68
109
|
const queryClient = useQueryClient();
|
|
69
|
-
|
|
110
|
+
const mutation = useActionMutation<
|
|
70
111
|
DocumentPropertiesResponse,
|
|
71
112
|
SetDocumentPropertyRequest
|
|
72
113
|
>("set-document-property", {
|
|
@@ -114,11 +155,7 @@ export function useSetDocumentProperty(
|
|
|
114
155
|
}),
|
|
115
156
|
);
|
|
116
157
|
queryClient.invalidateQueries({
|
|
117
|
-
queryKey:
|
|
118
|
-
"action",
|
|
119
|
-
"list-document-properties",
|
|
120
|
-
{ documentId: variables.documentId },
|
|
121
|
-
],
|
|
158
|
+
queryKey: documentPropertiesQueryKey(variables.documentId, databaseId),
|
|
122
159
|
});
|
|
123
160
|
queryClient.invalidateQueries({
|
|
124
161
|
queryKey: ["action", "get-document", { id: variables.documentId }],
|
|
@@ -135,14 +172,16 @@ export function useSetDocumentProperty(
|
|
|
135
172
|
});
|
|
136
173
|
},
|
|
137
174
|
});
|
|
175
|
+
return withDatabaseScope(mutation, databaseId);
|
|
138
176
|
}
|
|
139
177
|
|
|
140
178
|
export function useDuplicateDocumentProperty(
|
|
141
179
|
documentId: string,
|
|
180
|
+
databaseId: string,
|
|
142
181
|
databaseDocumentId = documentId,
|
|
143
182
|
) {
|
|
144
183
|
const queryClient = useQueryClient();
|
|
145
|
-
|
|
184
|
+
const mutation = useActionMutation<
|
|
146
185
|
DocumentPropertiesResponse,
|
|
147
186
|
DuplicateDocumentPropertyRequest
|
|
148
187
|
>("duplicate-document-property", {
|
|
@@ -153,7 +192,7 @@ export function useDuplicateDocumentProperty(
|
|
|
153
192
|
(current) => applyDocumentPropertiesToDatabaseResponse(current, data),
|
|
154
193
|
);
|
|
155
194
|
queryClient.invalidateQueries({
|
|
156
|
-
queryKey:
|
|
195
|
+
queryKey: documentPropertiesQueryKey(documentId, databaseId),
|
|
157
196
|
});
|
|
158
197
|
queryClient.invalidateQueries({
|
|
159
198
|
queryKey: ["action", "get-document", { id: documentId }],
|
|
@@ -163,20 +202,22 @@ export function useDuplicateDocumentProperty(
|
|
|
163
202
|
});
|
|
164
203
|
},
|
|
165
204
|
});
|
|
205
|
+
return withDatabaseScope(mutation, databaseId);
|
|
166
206
|
}
|
|
167
207
|
|
|
168
208
|
export function useReorderDocumentProperty(
|
|
169
209
|
documentId: string,
|
|
210
|
+
databaseId: string,
|
|
170
211
|
databaseDocumentId = documentId,
|
|
171
212
|
) {
|
|
172
213
|
const queryClient = useQueryClient();
|
|
173
|
-
|
|
214
|
+
const mutation = useActionMutation<
|
|
174
215
|
DocumentPropertiesResponse,
|
|
175
216
|
ReorderDocumentPropertyRequest
|
|
176
217
|
>("reorder-document-property", {
|
|
177
218
|
onSuccess: () => {
|
|
178
219
|
queryClient.invalidateQueries({
|
|
179
|
-
queryKey:
|
|
220
|
+
queryKey: documentPropertiesQueryKey(documentId, databaseId),
|
|
180
221
|
});
|
|
181
222
|
queryClient.invalidateQueries({
|
|
182
223
|
queryKey: ["action", "get-document", { id: documentId }],
|
|
@@ -186,14 +227,16 @@ export function useReorderDocumentProperty(
|
|
|
186
227
|
});
|
|
187
228
|
},
|
|
188
229
|
});
|
|
230
|
+
return withDatabaseScope(mutation, databaseId);
|
|
189
231
|
}
|
|
190
232
|
|
|
191
233
|
export function useDeleteDocumentProperty(
|
|
192
234
|
documentId: string,
|
|
235
|
+
databaseId: string,
|
|
193
236
|
databaseDocumentId = documentId,
|
|
194
237
|
) {
|
|
195
238
|
const queryClient = useQueryClient();
|
|
196
|
-
|
|
239
|
+
const mutation = useActionMutation<
|
|
197
240
|
DocumentPropertiesResponse,
|
|
198
241
|
DeleteDocumentPropertyRequest
|
|
199
242
|
>("delete-document-property", {
|
|
@@ -231,7 +274,7 @@ export function useDeleteDocumentProperty(
|
|
|
231
274
|
(current) => applyDocumentPropertiesToDatabaseResponse(current, data),
|
|
232
275
|
);
|
|
233
276
|
queryClient.invalidateQueries({
|
|
234
|
-
queryKey:
|
|
277
|
+
queryKey: documentPropertiesQueryKey(documentId, databaseId),
|
|
235
278
|
});
|
|
236
279
|
queryClient.invalidateQueries({
|
|
237
280
|
queryKey: ["action", "get-document", { id: documentId }],
|
|
@@ -241,4 +284,5 @@ export function useDeleteDocumentProperty(
|
|
|
241
284
|
});
|
|
242
285
|
},
|
|
243
286
|
});
|
|
287
|
+
return withDatabaseScope(mutation, databaseId);
|
|
244
288
|
}
|
|
@@ -36,8 +36,15 @@ export function documentQueryKey(documentId: string) {
|
|
|
36
36
|
return ["action", "get-document", { id: documentId }] as const;
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
-
export function documentPropertiesQueryKey(
|
|
40
|
-
|
|
39
|
+
export function documentPropertiesQueryKey(
|
|
40
|
+
documentId: string,
|
|
41
|
+
databaseId: string,
|
|
42
|
+
) {
|
|
43
|
+
return [
|
|
44
|
+
"action",
|
|
45
|
+
"list-document-properties",
|
|
46
|
+
{ documentId, databaseId },
|
|
47
|
+
] as const;
|
|
41
48
|
}
|
|
42
49
|
|
|
43
50
|
// Extends the shared request/response shapes with the optional
|
|
@@ -247,11 +254,12 @@ export function seedDatabaseItemDocumentCaches(
|
|
|
247
254
|
// owned by get-document; the table may still warm the separately scoped
|
|
248
255
|
// property cache below.
|
|
249
256
|
if (
|
|
250
|
-
queryClient.getQueryData(
|
|
251
|
-
|
|
257
|
+
queryClient.getQueryData(
|
|
258
|
+
documentPropertiesQueryKey(item.document.id, item.databaseId),
|
|
259
|
+
) === undefined
|
|
252
260
|
) {
|
|
253
261
|
queryClient.setQueryData<DocumentPropertiesResponse>(
|
|
254
|
-
documentPropertiesQueryKey(item.document.id),
|
|
262
|
+
documentPropertiesQueryKey(item.document.id, item.databaseId),
|
|
255
263
|
{
|
|
256
264
|
documentId: item.document.id,
|
|
257
265
|
databaseId: item.databaseId,
|
|
@@ -3103,6 +3103,24 @@ const enUS = {
|
|
|
3103
3103
|
localFiles: localFilesMessages,
|
|
3104
3104
|
sidebar: {
|
|
3105
3105
|
cannotReorderPages: "Cannot reorder pages",
|
|
3106
|
+
pinned: "Pinned",
|
|
3107
|
+
loadingPinned: "Loading pinned items…",
|
|
3108
|
+
dragToReorder: "Drag to reorder {{label}}",
|
|
3109
|
+
moveUp: "Move up",
|
|
3110
|
+
moveDown: "Move down",
|
|
3111
|
+
moveToPosition: "Move to position",
|
|
3112
|
+
positionNumber: "Position {{position}}",
|
|
3113
|
+
failedSaveOrder: "Could not save order",
|
|
3114
|
+
moreActionsFor: "More actions for {{label}}",
|
|
3115
|
+
orderButton: "Order: {{order}}",
|
|
3116
|
+
orderMode: {
|
|
3117
|
+
custom: "Custom",
|
|
3118
|
+
last_edited: "Last edited",
|
|
3119
|
+
name: "Name",
|
|
3120
|
+
created: "Created",
|
|
3121
|
+
},
|
|
3122
|
+
pinToSidebar: "Pin to sidebar",
|
|
3123
|
+
unpinFromSidebar: "Unpin from sidebar",
|
|
3106
3124
|
addWorkspace: "Add workspace",
|
|
3107
3125
|
addChild: "Add child",
|
|
3108
3126
|
addChildTo: "Add child to {{title}}",
|
|
@@ -3137,8 +3155,8 @@ const enUS = {
|
|
|
3137
3155
|
failedPermanentDeleteDatabase: "Failed to permanently delete database",
|
|
3138
3156
|
failedPermanentDeletePage: "Failed to permanently delete page",
|
|
3139
3157
|
failedMovePage: "Failed to move page",
|
|
3140
|
-
failedUpdateFavorite: "Could not update
|
|
3141
|
-
removeFromFavorites: "
|
|
3158
|
+
failedUpdateFavorite: "Could not update pinned items",
|
|
3159
|
+
removeFromFavorites: "Unpin from sidebar",
|
|
3142
3160
|
failedRemoveLocalFiles: "Failed to remove local files",
|
|
3143
3161
|
failedRestoreDatabase: "Failed to restore database",
|
|
3144
3162
|
failedRestorePage: "Failed to restore page",
|
|
@@ -3219,7 +3237,7 @@ const enUS = {
|
|
|
3219
3237
|
synced: "Synced",
|
|
3220
3238
|
trash: "Trash",
|
|
3221
3239
|
trashEmpty: "Trash is empty",
|
|
3222
|
-
favorites: "
|
|
3240
|
+
favorites: "Pinned",
|
|
3223
3241
|
untitled: "Untitled",
|
|
3224
3242
|
workspaces: "Workspaces",
|
|
3225
3243
|
},
|
|
@@ -10622,6 +10640,242 @@ export const messagesByLocale = {
|
|
|
10622
10640
|
}),
|
|
10623
10641
|
} satisfies Record<LocaleCode, Messages>;
|
|
10624
10642
|
|
|
10643
|
+
const sidebarPinnedMessagesByLocale: Partial<
|
|
10644
|
+
Record<LocaleCode, Partial<Messages["sidebar"]>>
|
|
10645
|
+
> = {
|
|
10646
|
+
"zh-TW": {
|
|
10647
|
+
pinned: "已釘選",
|
|
10648
|
+
loadingPinned: "正在載入已釘選項目…",
|
|
10649
|
+
dragToReorder: "拖曳以重新排序 {{label}}",
|
|
10650
|
+
moveUp: "上移",
|
|
10651
|
+
moveDown: "下移",
|
|
10652
|
+
moveToPosition: "移至位置",
|
|
10653
|
+
positionNumber: "第 {{position}} 個位置",
|
|
10654
|
+
failedSaveOrder: "無法儲存排序",
|
|
10655
|
+
moreActionsFor: "{{label}} 的更多操作",
|
|
10656
|
+
orderButton: "排序:{{order}}",
|
|
10657
|
+
orderMode: {
|
|
10658
|
+
custom: "自訂",
|
|
10659
|
+
last_edited: "最近編輯",
|
|
10660
|
+
name: "名稱",
|
|
10661
|
+
created: "建立時間",
|
|
10662
|
+
},
|
|
10663
|
+
pinToSidebar: "釘選到側邊欄",
|
|
10664
|
+
unpinFromSidebar: "從側邊欄取消釘選",
|
|
10665
|
+
failedUpdateFavorite: "無法更新已釘選項目",
|
|
10666
|
+
removeFromFavorites: "從側邊欄取消釘選",
|
|
10667
|
+
favorites: "已釘選",
|
|
10668
|
+
},
|
|
10669
|
+
"zh-CN": {
|
|
10670
|
+
pinned: "已固定",
|
|
10671
|
+
loadingPinned: "正在加载已固定项目…",
|
|
10672
|
+
dragToReorder: "拖动以重新排序 {{label}}",
|
|
10673
|
+
moveUp: "上移",
|
|
10674
|
+
moveDown: "下移",
|
|
10675
|
+
moveToPosition: "移至位置",
|
|
10676
|
+
positionNumber: "位置 {{position}}",
|
|
10677
|
+
failedSaveOrder: "无法保存排序",
|
|
10678
|
+
moreActionsFor: "{{label}} 的更多操作",
|
|
10679
|
+
orderButton: "排序:{{order}}",
|
|
10680
|
+
orderMode: {
|
|
10681
|
+
custom: "自定义",
|
|
10682
|
+
last_edited: "最近编辑",
|
|
10683
|
+
name: "名称",
|
|
10684
|
+
created: "创建时间",
|
|
10685
|
+
},
|
|
10686
|
+
pinToSidebar: "固定到侧边栏",
|
|
10687
|
+
unpinFromSidebar: "从侧边栏取消固定",
|
|
10688
|
+
failedUpdateFavorite: "无法更新已固定项目",
|
|
10689
|
+
removeFromFavorites: "从侧边栏取消固定",
|
|
10690
|
+
favorites: "已固定",
|
|
10691
|
+
},
|
|
10692
|
+
"es-ES": {
|
|
10693
|
+
pinned: "Fijados",
|
|
10694
|
+
loadingPinned: "Cargando elementos fijados…",
|
|
10695
|
+
dragToReorder: "Arrastra para reordenar {{label}}",
|
|
10696
|
+
moveUp: "Mover hacia arriba",
|
|
10697
|
+
moveDown: "Mover hacia abajo",
|
|
10698
|
+
moveToPosition: "Mover a la posición",
|
|
10699
|
+
positionNumber: "Posición {{position}}",
|
|
10700
|
+
failedSaveOrder: "No se pudo guardar el orden",
|
|
10701
|
+
moreActionsFor: "Más acciones para {{label}}",
|
|
10702
|
+
orderButton: "Orden: {{order}}",
|
|
10703
|
+
orderMode: {
|
|
10704
|
+
custom: "Personalizado",
|
|
10705
|
+
last_edited: "Última edición",
|
|
10706
|
+
name: "Nombre",
|
|
10707
|
+
created: "Creado",
|
|
10708
|
+
},
|
|
10709
|
+
pinToSidebar: "Fijar a la barra lateral",
|
|
10710
|
+
unpinFromSidebar: "Desfijar de la barra lateral",
|
|
10711
|
+
failedUpdateFavorite: "No se pudieron actualizar los elementos fijados",
|
|
10712
|
+
removeFromFavorites: "Desfijar de la barra lateral",
|
|
10713
|
+
favorites: "Fijados",
|
|
10714
|
+
},
|
|
10715
|
+
"fr-FR": {
|
|
10716
|
+
pinned: "Épinglés",
|
|
10717
|
+
loadingPinned: "Chargement des éléments épinglés…",
|
|
10718
|
+
dragToReorder: "Faites glisser {{label}} pour le réorganiser",
|
|
10719
|
+
moveUp: "Monter",
|
|
10720
|
+
moveDown: "Descendre",
|
|
10721
|
+
moveToPosition: "Déplacer à la position",
|
|
10722
|
+
positionNumber: "Position {{position}}",
|
|
10723
|
+
failedSaveOrder: "Impossible d’enregistrer l’ordre",
|
|
10724
|
+
moreActionsFor: "Autres actions pour {{label}}",
|
|
10725
|
+
orderButton: "Ordre : {{order}}",
|
|
10726
|
+
orderMode: {
|
|
10727
|
+
custom: "Personnalisé",
|
|
10728
|
+
last_edited: "Dernière modification",
|
|
10729
|
+
name: "Nom",
|
|
10730
|
+
created: "Créé",
|
|
10731
|
+
},
|
|
10732
|
+
pinToSidebar: "Épingler à la barre latérale",
|
|
10733
|
+
unpinFromSidebar: "Désépingler de la barre latérale",
|
|
10734
|
+
failedUpdateFavorite: "Impossible de mettre à jour les éléments épinglés",
|
|
10735
|
+
removeFromFavorites: "Désépingler de la barre latérale",
|
|
10736
|
+
favorites: "Épinglés",
|
|
10737
|
+
},
|
|
10738
|
+
"de-DE": {
|
|
10739
|
+
pinned: "Angeheftet",
|
|
10740
|
+
loadingPinned: "Angeheftete Elemente werden geladen…",
|
|
10741
|
+
dragToReorder: "{{label}} zum Neuordnen ziehen",
|
|
10742
|
+
moveUp: "Nach oben verschieben",
|
|
10743
|
+
moveDown: "Nach unten verschieben",
|
|
10744
|
+
moveToPosition: "An Position verschieben",
|
|
10745
|
+
positionNumber: "Position {{position}}",
|
|
10746
|
+
failedSaveOrder: "Reihenfolge konnte nicht gespeichert werden",
|
|
10747
|
+
moreActionsFor: "Weitere Aktionen für {{label}}",
|
|
10748
|
+
orderButton: "Reihenfolge: {{order}}",
|
|
10749
|
+
orderMode: {
|
|
10750
|
+
custom: "Benutzerdefiniert",
|
|
10751
|
+
last_edited: "Zuletzt bearbeitet",
|
|
10752
|
+
name: "Name",
|
|
10753
|
+
created: "Erstellt",
|
|
10754
|
+
},
|
|
10755
|
+
pinToSidebar: "In Seitenleiste anheften",
|
|
10756
|
+
unpinFromSidebar: "Aus Seitenleiste lösen",
|
|
10757
|
+
failedUpdateFavorite:
|
|
10758
|
+
"Angeheftete Elemente konnten nicht aktualisiert werden",
|
|
10759
|
+
removeFromFavorites: "Aus Seitenleiste lösen",
|
|
10760
|
+
favorites: "Angeheftet",
|
|
10761
|
+
},
|
|
10762
|
+
"ja-JP": {
|
|
10763
|
+
pinned: "固定済み",
|
|
10764
|
+
loadingPinned: "固定済みの項目を読み込み中…",
|
|
10765
|
+
dragToReorder: "{{label}} をドラッグして並べ替え",
|
|
10766
|
+
moveUp: "上に移動",
|
|
10767
|
+
moveDown: "下に移動",
|
|
10768
|
+
moveToPosition: "指定位置に移動",
|
|
10769
|
+
positionNumber: "位置 {{position}}",
|
|
10770
|
+
failedSaveOrder: "並び順を保存できませんでした",
|
|
10771
|
+
moreActionsFor: "{{label}} のその他の操作",
|
|
10772
|
+
orderButton: "並び順: {{order}}",
|
|
10773
|
+
orderMode: {
|
|
10774
|
+
custom: "カスタム",
|
|
10775
|
+
last_edited: "最終編集",
|
|
10776
|
+
name: "名前",
|
|
10777
|
+
created: "作成日",
|
|
10778
|
+
},
|
|
10779
|
+
pinToSidebar: "サイドバーに固定",
|
|
10780
|
+
unpinFromSidebar: "サイドバーから固定解除",
|
|
10781
|
+
failedUpdateFavorite: "固定済みの項目を更新できませんでした",
|
|
10782
|
+
removeFromFavorites: "サイドバーから固定解除",
|
|
10783
|
+
favorites: "固定済み",
|
|
10784
|
+
},
|
|
10785
|
+
"ko-KR": {
|
|
10786
|
+
pinned: "고정됨",
|
|
10787
|
+
loadingPinned: "고정된 항목 불러오는 중…",
|
|
10788
|
+
dragToReorder: "{{label}} 드래그하여 순서 변경",
|
|
10789
|
+
moveUp: "위로 이동",
|
|
10790
|
+
moveDown: "아래로 이동",
|
|
10791
|
+
moveToPosition: "위치로 이동",
|
|
10792
|
+
positionNumber: "{{position}}번째 위치",
|
|
10793
|
+
failedSaveOrder: "순서를 저장하지 못했습니다",
|
|
10794
|
+
moreActionsFor: "{{label}}의 추가 작업",
|
|
10795
|
+
orderButton: "정렬: {{order}}",
|
|
10796
|
+
orderMode: {
|
|
10797
|
+
custom: "사용자 지정",
|
|
10798
|
+
last_edited: "최근 수정",
|
|
10799
|
+
name: "이름",
|
|
10800
|
+
created: "생성일",
|
|
10801
|
+
},
|
|
10802
|
+
pinToSidebar: "사이드바에 고정",
|
|
10803
|
+
unpinFromSidebar: "사이드바에서 고정 해제",
|
|
10804
|
+
failedUpdateFavorite: "고정된 항목을 업데이트하지 못했습니다",
|
|
10805
|
+
removeFromFavorites: "사이드바에서 고정 해제",
|
|
10806
|
+
favorites: "고정됨",
|
|
10807
|
+
},
|
|
10808
|
+
"pt-BR": {
|
|
10809
|
+
pinned: "Fixados",
|
|
10810
|
+
loadingPinned: "Carregando itens fixados…",
|
|
10811
|
+
dragToReorder: "Arraste para reordenar {{label}}",
|
|
10812
|
+
moveUp: "Mover para cima",
|
|
10813
|
+
moveDown: "Mover para baixo",
|
|
10814
|
+
moveToPosition: "Mover para a posição",
|
|
10815
|
+
positionNumber: "Posição {{position}}",
|
|
10816
|
+
failedSaveOrder: "Não foi possível salvar a ordem",
|
|
10817
|
+
moreActionsFor: "Mais ações para {{label}}",
|
|
10818
|
+
orderButton: "Ordem: {{order}}",
|
|
10819
|
+
orderMode: {
|
|
10820
|
+
custom: "Personalizado",
|
|
10821
|
+
last_edited: "Última edição",
|
|
10822
|
+
name: "Nome",
|
|
10823
|
+
created: "Criado",
|
|
10824
|
+
},
|
|
10825
|
+
pinToSidebar: "Fixar na barra lateral",
|
|
10826
|
+
unpinFromSidebar: "Desafixar da barra lateral",
|
|
10827
|
+
failedUpdateFavorite: "Não foi possível atualizar os itens fixados",
|
|
10828
|
+
removeFromFavorites: "Desafixar da barra lateral",
|
|
10829
|
+
favorites: "Fixados",
|
|
10830
|
+
},
|
|
10831
|
+
"hi-IN": {
|
|
10832
|
+
pinned: "पिन किए गए",
|
|
10833
|
+
loadingPinned: "पिन किए गए आइटम लोड हो रहे हैं…",
|
|
10834
|
+
dragToReorder: "{{label}} को फिर से क्रमबद्ध करने के लिए खींचें",
|
|
10835
|
+
moveUp: "ऊपर ले जाएँ",
|
|
10836
|
+
moveDown: "नीचे ले जाएँ",
|
|
10837
|
+
moveToPosition: "स्थान पर ले जाएँ",
|
|
10838
|
+
positionNumber: "स्थान {{position}}",
|
|
10839
|
+
failedSaveOrder: "क्रम सहेजा नहीं जा सका",
|
|
10840
|
+
moreActionsFor: "{{label}} के लिए और कार्रवाइयाँ",
|
|
10841
|
+
orderButton: "क्रम: {{order}}",
|
|
10842
|
+
orderMode: {
|
|
10843
|
+
custom: "कस्टम",
|
|
10844
|
+
last_edited: "अंतिम संपादन",
|
|
10845
|
+
name: "नाम",
|
|
10846
|
+
created: "बनाया गया",
|
|
10847
|
+
},
|
|
10848
|
+
pinToSidebar: "साइडबार में पिन करें",
|
|
10849
|
+
unpinFromSidebar: "साइडबार से अनपिन करें",
|
|
10850
|
+
failedUpdateFavorite: "पिन किए गए आइटम अपडेट नहीं किए जा सके",
|
|
10851
|
+
removeFromFavorites: "साइडबार से अनपिन करें",
|
|
10852
|
+
favorites: "पिन किए गए",
|
|
10853
|
+
},
|
|
10854
|
+
"ar-SA": {
|
|
10855
|
+
pinned: "مثبتة",
|
|
10856
|
+
loadingPinned: "جارٍ تحميل العناصر المثبتة…",
|
|
10857
|
+
dragToReorder: "اسحب لإعادة ترتيب {{label}}",
|
|
10858
|
+
moveUp: "نقل لأعلى",
|
|
10859
|
+
moveDown: "نقل لأسفل",
|
|
10860
|
+
moveToPosition: "نقل إلى موضع",
|
|
10861
|
+
positionNumber: "الموضع {{position}}",
|
|
10862
|
+
failedSaveOrder: "تعذر حفظ الترتيب",
|
|
10863
|
+
moreActionsFor: "مزيد من الإجراءات لـ {{label}}",
|
|
10864
|
+
orderButton: "الترتيب: {{order}}",
|
|
10865
|
+
orderMode: {
|
|
10866
|
+
custom: "مخصص",
|
|
10867
|
+
last_edited: "آخر تعديل",
|
|
10868
|
+
name: "الاسم",
|
|
10869
|
+
created: "تاريخ الإنشاء",
|
|
10870
|
+
},
|
|
10871
|
+
pinToSidebar: "تثبيت في الشريط الجانبي",
|
|
10872
|
+
unpinFromSidebar: "إلغاء التثبيت من الشريط الجانبي",
|
|
10873
|
+
failedUpdateFavorite: "تعذر تحديث العناصر المثبتة",
|
|
10874
|
+
removeFromFavorites: "إلغاء التثبيت من الشريط الجانبي",
|
|
10875
|
+
favorites: "مثبتة",
|
|
10876
|
+
},
|
|
10877
|
+
};
|
|
10878
|
+
|
|
10625
10879
|
const contentExactEnglishTranslations = {
|
|
10626
10880
|
"zh-TW": {
|
|
10627
10881
|
editor: {
|
|
@@ -11106,4 +11360,8 @@ for (const [locale, overrides] of Object.entries(
|
|
|
11106
11360
|
}
|
|
11107
11361
|
}
|
|
11108
11362
|
}
|
|
11363
|
+
const sidebarPinnedMessages = sidebarPinnedMessagesByLocale[locale];
|
|
11364
|
+
if (sidebarPinnedMessages) {
|
|
11365
|
+
Object.assign(messages.sidebar, sidebarPinnedMessages);
|
|
11366
|
+
}
|
|
11109
11367
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useT } from "@agent-native/core/client/i18n";
|
|
2
|
-
import { useParams } from "react-router";
|
|
2
|
+
import { useParams, useSearchParams } from "react-router";
|
|
3
3
|
|
|
4
4
|
import { DocumentEditor } from "@/components/editor/DocumentEditor";
|
|
5
5
|
import { messagesByLocale } from "@/i18n-data";
|
|
@@ -19,9 +19,16 @@ export function meta() {
|
|
|
19
19
|
export default function DocumentPage() {
|
|
20
20
|
const t = useT();
|
|
21
21
|
const { id } = useParams<{ id: string }>();
|
|
22
|
+
const [searchParams] = useSearchParams();
|
|
23
|
+
const databaseId = searchParams.get("databaseId");
|
|
24
|
+
const databaseDocumentId = searchParams.get("databaseDocumentId");
|
|
22
25
|
|
|
23
26
|
return id ? (
|
|
24
|
-
<DocumentEditor
|
|
27
|
+
<DocumentEditor
|
|
28
|
+
documentId={id}
|
|
29
|
+
databaseId={databaseId}
|
|
30
|
+
databaseDocumentId={databaseDocumentId}
|
|
31
|
+
/>
|
|
25
32
|
) : (
|
|
26
33
|
<div className="flex-1 flex items-center justify-center text-muted-foreground">
|
|
27
34
|
{t("empty.documentNotFound")}
|