@lunora/studio 1.0.0-alpha.3 → 1.0.0-alpha.30
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/__assets__/package-og.svg +1 -1
- package/dist/index.d.ts +29 -18
- package/dist/index.js +29 -29
- package/dist/mount.d.ts +1 -1
- package/dist/mount.js +1 -1
- package/dist/{packem_shared/ApiTab-W3no0KOj.js → packem_chunks/ApiTab.js} +5 -5
- package/dist/{packem_shared/AuditPanel-Bq4o_IqT.js → packem_chunks/AuditPanel.js} +24 -36
- package/dist/{packem_shared/ExportImportPanel-dxY56TDF.js → packem_chunks/ExportImportPanel.js} +13 -9
- package/dist/{packem_shared/FileBrowser-Dhy4zES8.js → packem_chunks/FileBrowser.js} +15 -15
- package/dist/{packem_shared/FunctionRunner--fQJRPAD.js → packem_chunks/FunctionRunner.js} +10 -10
- package/dist/{packem_shared/FunctionStatsPanel-BjRUA_G3.js → packem_chunks/FunctionStatsPanel.js} +147 -204
- package/dist/{packem_shared/HealthPanel-PxclMWmA.js → packem_chunks/HealthPanel.js} +37 -29
- package/dist/{packem_shared/InsightsPanel-CWS_C-xW.js → packem_chunks/InsightsPanel.js} +107 -69
- package/dist/{packem_shared/LogsPanel-CTW8CFcM.js → packem_chunks/LogsPanel.js} +41 -53
- package/dist/{packem_shared/MailPanel-BwkvfIHF.js → packem_chunks/MailPanel.js} +37 -44
- package/dist/{packem_shared/MetricsPanel-BLuOhZQ4.js → packem_chunks/MetricsPanel.js} +41 -322
- package/dist/{packem_shared/MigrationsPanel-DT3lnwHF.js → packem_chunks/MigrationsPanel.js} +39 -46
- package/dist/{packem_shared/PitrPanel-CdErL7EJ.js → packem_chunks/PitrPanel.js} +9 -9
- package/dist/{packem_shared/SchemaViewer-LJDcmNIO.js → packem_chunks/SchemaViewer.js} +15 -15
- package/dist/{packem_shared/SecurityAdvisorPanel-C_ETsPih.js → packem_chunks/SecurityAdvisorPanel.js} +44 -31
- package/dist/packem_chunks/SettingsPanel.js +390 -0
- package/dist/{packem_shared/sql-editor-panel-BFRpzj6r.js → packem_chunks/SqlEditorPanel.js} +12 -252
- package/dist/{packem_shared/TableEditor-ChfUOZec.js → packem_chunks/TableEditor.js} +10 -68
- package/dist/packem_chunks/analytics-panel.js +261 -0
- package/dist/packem_chunks/auth-config-panel.js +179 -0
- package/dist/packem_chunks/auth-sessions-panel.js +175 -0
- package/dist/packem_chunks/dashboards-panel.js +779 -0
- package/dist/packem_chunks/fanout-panel.js +481 -0
- package/dist/packem_chunks/flags-panel.js +176 -0
- package/dist/packem_chunks/kv-browser.js +1896 -0
- package/dist/packem_chunks/log-drains-panel.js +273 -0
- package/dist/packem_chunks/organizations-panel.js +670 -0
- package/dist/packem_chunks/payments-panel.js +185 -0
- package/dist/packem_chunks/permissions-panel.js +804 -0
- package/dist/packem_chunks/queues-panel.js +147 -0
- package/dist/packem_chunks/rls-panel.js +313 -0
- package/dist/packem_chunks/schedule-panel.js +831 -0
- package/dist/packem_chunks/sparkline.js +79 -0
- package/dist/packem_chunks/storage-rules-panel.js +138 -0
- package/dist/packem_chunks/subscriptions-panel.js +236 -0
- package/dist/packem_chunks/users-panel.js +1265 -0
- package/dist/packem_chunks/vector-browser.js +281 -0
- package/dist/packem_chunks/workflows-panel.js +562 -0
- package/dist/packem_shared/{ADMIN_FUNCTIONS-DmBqMZ-z.js → ADMIN_FUNCTIONS-CdaxLGkE.js} +3 -0
- package/dist/packem_shared/{ApiDocsPanel-C5-yJ1p7.js → ApiDocsPanel-B6u_wnz-.js} +2 -2
- package/dist/packem_shared/{ApiReferencePanel-1vubqG5s.js → ApiReferencePanel-Drz4UO0a.js} +2 -1
- package/dist/packem_shared/{CommandPalette-BtgkBzZI.js → CommandPalette-B5BertvU.js} +1 -1
- package/dist/packem_shared/{DataBrowser-CtBe1So9.js → DataBrowser-ANTHLWWh.js} +198 -247
- package/dist/packem_shared/{GlobalDataBrowser-BTEmGrph.js → GlobalDataBrowser-CjgTG_wa.js} +37 -66
- package/dist/packem_shared/HomePanel-c2FodE9t.js +14 -0
- package/dist/packem_shared/{OpenRpcReferencePanel-vbcYbv3V.js → OpenRpcReferencePanel-CspFdbUT.js} +2 -1
- package/dist/packem_shared/{ScheduledJobs-CabfKbyM.js → ScheduledJobs-BEJXtsBn.js} +163 -60
- package/dist/packem_shared/Studio-CVTtA_sB.js +16 -0
- package/dist/packem_shared/{StudioApp-CHOZA-z-.js → StudioApp-BSYV2fz6.js} +277 -3
- package/dist/packem_shared/{advisor-view-CGcfMiPq.js → advisor-view-DzqyvUU3.js} +1 -1
- package/dist/packem_shared/{app.d-CCmwDEVs.d.ts → app.d-B6MyY_al.d.ts} +1 -1
- package/dist/packem_shared/{bar-chart-CzJAgqkp.js → bar-chart-Bb__F5-u.js} +1 -1
- package/dist/packem_shared/browser-storage-d03UsV7v.js +249 -0
- package/dist/packem_shared/{cf-links-2cktDedA.js → cf-links-BZfRdxSE.js} +1 -1
- package/dist/packem_shared/{data-grid-B5CaV3wS.js → data-grid-Dsg6nRjo.js} +1 -1
- package/dist/packem_shared/data-view-params-Cd6yRVbv.js +96 -0
- package/dist/packem_shared/{grid-features-CzUfqgsM.js → grid-features-D7nNzBYm.js} +4 -99
- package/dist/packem_shared/{HomePanel-Cw16stjq.js → home-panel-aOR_drVv.js} +833 -469
- package/dist/packem_shared/{internal-rXJEAhXS.js → internal-FcNZ3beb.js} +1 -1
- package/dist/packem_shared/modal-shell-hyaJvIJ6.js +100 -0
- package/dist/packem_shared/{reference-view-B4E49Lip.js → reference-view-Doy1XlQq.js} +4 -44
- package/dist/packem_shared/select-UkNYCT3s.js +273 -0
- package/dist/packem_shared/skeleton-CGhL0p20.js +45 -0
- package/dist/packem_shared/{sparkline-10dG-_f0.js → sparkline-KgMPHS4u.js} +1 -1
- package/dist/packem_shared/studio-dMTJ-kRR.js +3987 -0
- package/dist/packem_shared/{table-_RzNvy3R.js → table-DsCa9Qp9.js} +1 -1
- package/dist/packem_shared/{table-list-sidebar-Bg7uzbvC.js → table-list-sidebar-VMo0ftxD.js} +1 -1
- package/dist/packem_shared/use-admin-query-BViPA3US.js +105 -0
- package/dist/packem_shared/use-auth-capabilities-BHkoBnbZ.js +32 -0
- package/dist/standalone/chunk-2DS7JLWL.js +13 -0
- package/dist/standalone/chunk-2K47A3P6.js +1 -0
- package/dist/standalone/chunk-2NGUNNGW.js +1 -0
- package/dist/standalone/chunk-2PDQ4KZ6.js +1 -0
- package/dist/standalone/chunk-3BP4BTLR.js +4 -0
- package/dist/standalone/chunk-3OA7PECS.js +6 -0
- package/dist/standalone/chunk-4QHKBC77.js +1 -0
- package/dist/standalone/chunk-57LYXHXH.js +1 -0
- package/dist/standalone/chunk-5NSZVXCS.js +1 -0
- package/dist/standalone/chunk-5OIBXYZM.js +1 -0
- package/dist/standalone/chunk-63XKJQTQ.js +1 -0
- package/dist/standalone/chunk-6RC6L33K.js +4 -0
- package/dist/standalone/chunk-6VTGE3WJ.js +1 -0
- package/dist/standalone/chunk-7PBZKXYA.js +1 -0
- package/dist/standalone/chunk-7POIIWC5.js +3 -0
- package/dist/standalone/chunk-7RYIQKZA.js +1 -0
- package/dist/standalone/chunk-7TJJXVSE.js +1 -0
- package/dist/standalone/chunk-AB6QGMBF.js +1 -0
- package/dist/standalone/chunk-AHILM3ZP.js +1 -0
- package/dist/standalone/chunk-AQGOX5DK.js +1 -0
- package/dist/standalone/chunk-ASLGNHAX.js +1 -0
- package/dist/standalone/chunk-BHTPZS7L.js +4 -0
- package/dist/standalone/chunk-BJGBHGK3.js +1 -0
- package/dist/standalone/chunk-D7HKX4DI.js +1 -0
- package/dist/standalone/chunk-DGWTR4G7.js +1 -0
- package/dist/standalone/chunk-DSX53PBM.js +1 -0
- package/dist/standalone/chunk-DV2MNASX.js +1 -0
- package/dist/standalone/chunk-DWDILV2E.js +1 -0
- package/dist/standalone/chunk-E7AVZZKO.js +1 -0
- package/dist/standalone/chunk-EGJX34WM.js +1 -0
- package/dist/standalone/chunk-FCR3HKFV.js +1 -0
- package/dist/standalone/chunk-FKO3HO6I.js +4 -0
- package/dist/standalone/chunk-FQKNJSRA.js +76 -0
- package/dist/standalone/chunk-G2TFEWEQ.js +4 -0
- package/dist/standalone/chunk-GABMIICA.js +1 -0
- package/dist/standalone/chunk-GTM65MVX.js +1 -0
- package/dist/standalone/chunk-GZXPPJVK.js +1 -0
- package/dist/standalone/chunk-HFBRE65A.js +1 -0
- package/dist/standalone/chunk-HFMQNUBC.js +1 -0
- package/dist/standalone/chunk-HG7Q5B3H.js +1 -0
- package/dist/standalone/chunk-HTQL7AXU.js +1 -0
- package/dist/standalone/chunk-HV7G6DFP.js +5 -0
- package/dist/standalone/chunk-ITLLHEVG.js +1 -0
- package/dist/standalone/chunk-J6J54MBP.js +1 -0
- package/dist/standalone/chunk-JSEXCW5Q.js +1 -0
- package/dist/standalone/chunk-KEGAWN6Y.js +1 -0
- package/dist/standalone/chunk-KG3QTFWE.js +1 -0
- package/dist/standalone/chunk-KGS7KM4A.js +2 -0
- package/dist/standalone/chunk-KODWGUAB.js +1 -0
- package/dist/standalone/chunk-KZ6INM5M.js +1 -0
- package/dist/standalone/chunk-MGFEVTRI.js +1 -0
- package/dist/standalone/chunk-N2QDG3MW.js +1 -0
- package/dist/standalone/chunk-N4JI6VQD.js +1 -0
- package/dist/standalone/chunk-NNISYDNI.js +1 -0
- package/dist/standalone/chunk-O4PXDNR3.js +1 -0
- package/dist/standalone/chunk-O77VNUFD.js +1 -0
- package/dist/standalone/chunk-OD2POGPJ.js +1 -0
- package/dist/standalone/chunk-OXCK3ZUG.js +1 -0
- package/dist/standalone/chunk-P7DSVO4U.js +1 -0
- package/dist/standalone/chunk-PKAM3N5C.js +1 -0
- package/dist/standalone/chunk-QGXGBHQO.js +1 -0
- package/dist/standalone/chunk-QHA3TAEJ.js +1 -0
- package/dist/standalone/chunk-QQWC62X7.js +1 -0
- package/dist/standalone/chunk-RMYA7NAH.js +1 -0
- package/dist/standalone/chunk-RRCPZMC2.js +22 -0
- package/dist/standalone/chunk-S53RUBW5.js +1 -0
- package/dist/standalone/chunk-SB4GT6PK.js +1 -0
- package/dist/standalone/chunk-SEU5V7I6.js +1 -0
- package/dist/standalone/chunk-SHIOUDOT.js +1 -0
- package/dist/standalone/chunk-SIDRSX7Y.js +1 -0
- package/dist/standalone/chunk-SVR644RF.js +1 -0
- package/dist/standalone/chunk-TAD43CG5.js +1 -0
- package/dist/standalone/chunk-TBMYIZIO.js +1 -0
- package/dist/standalone/chunk-TICVNLPM.js +1 -0
- package/dist/standalone/chunk-TQ36RWOP.js +1 -0
- package/dist/standalone/chunk-UGMRUEBU.js +1 -0
- package/dist/standalone/chunk-UII66UVF.js +1 -0
- package/dist/standalone/chunk-VJPQUBN6.js +8 -0
- package/dist/standalone/chunk-VLXV72QE.js +1 -0
- package/dist/standalone/chunk-VMJKJWG6.js +1 -0
- package/dist/standalone/chunk-VPDPN5RR.js +2 -0
- package/dist/standalone/chunk-VSEGZA3J.js +1 -0
- package/dist/standalone/chunk-VXBZQIGY.js +4 -0
- package/dist/standalone/chunk-W7PCVQTE.js +1 -0
- package/dist/standalone/chunk-XLILSHPE.js +1 -0
- package/dist/standalone/chunk-XURNGQSS.js +1 -0
- package/dist/standalone/chunk-YJGANMU7.js +18 -0
- package/dist/standalone/chunk-YQQJ4N6U.js +1 -0
- package/dist/standalone/chunk-ZH7UES4T.js +2 -0
- package/dist/standalone/chunk-ZPUO7FNI.js +1 -0
- package/dist/standalone/chunk-ZQCVDXDL.js +1 -0
- package/dist/standalone/studio.js +104 -246
- package/dist/styles.css +1 -1
- package/package.json +13 -12
- package/dist/packem_shared/SettingsPanel-C0uLRf5P.js +0 -176
- package/dist/packem_shared/SqlEditorPanel-CguV7otm.js +0 -13
- package/dist/packem_shared/Studio-DFWAlcuf.js +0 -33
- package/dist/packem_shared/studio-Bj8psK1c.js +0 -10303
- package/dist/packem_shared/use-live-admin-Dq6g3daN.js +0 -73
- package/dist/packem_shared/use-live-shard-seed-Cuk3dnH0.js +0 -76
|
@@ -5,20 +5,21 @@ import { ConfirmButton } from './ConfirmButton-C2eVi2Qv.js';
|
|
|
5
5
|
import { ShardInput } from './ShardInput-gx_DZXXn.js';
|
|
6
6
|
import { E as EmptyState } from './empty-state-DY_oe0k6.js';
|
|
7
7
|
import { useT } from './DEFAULT_LOCALE-CiX4W7Kr.js';
|
|
8
|
-
import { ADMIN_FUNCTIONS } from './ADMIN_FUNCTIONS-
|
|
9
|
-
import {
|
|
8
|
+
import { ADMIN_FUNCTIONS } from './ADMIN_FUNCTIONS-CdaxLGkE.js';
|
|
9
|
+
import { d as formatCell, f as fireAndForget, c as callOptions, a as adminRef, g as formatTimestamp } from './internal-FcNZ3beb.js';
|
|
10
10
|
import { useReactTable, getSortedRowModel, getCoreRowModel, flexRender } from '@tanstack/react-table';
|
|
11
11
|
import { useVirtualizer } from '@tanstack/react-virtual';
|
|
12
12
|
import { C as Checkbox } from './checkbox-UNkzAxl-.js';
|
|
13
13
|
import { c as cn } from './utils-B05Dmz_H.js';
|
|
14
14
|
import { f as flooredRectObserver } from './virtual-rect-CVMUskSm.js';
|
|
15
|
-
import { G as GridContainer, C as CellValue, T as TransposedTable } from './data-grid-
|
|
15
|
+
import { G as GridContainer, C as CellValue, T as TransposedTable } from './data-grid-Dsg6nRjo.js';
|
|
16
16
|
import { jsxDEV, Fragment } from 'react/jsx-dev-runtime';
|
|
17
|
-
import { u as useFacets, T as TableListSidebar, G as GridPagination, D as DataFacets } from './table-list-sidebar-
|
|
17
|
+
import { u as useFacets, T as TableListSidebar, G as GridPagination, D as DataFacets } from './table-list-sidebar-VMo0ftxD.js';
|
|
18
18
|
import { toFilterClauses, DataFilters } from './DataFilters-FNquMaiu.js';
|
|
19
|
-
import { M as ModalShell
|
|
19
|
+
import { M as ModalShell } from './modal-shell-hyaJvIJ6.js';
|
|
20
|
+
import { G as GridActionsBar, C as CellDetailDialog } from './grid-features-D7nNzBYm.js';
|
|
21
|
+
import { u as useAdminQuery } from './use-admin-query-BViPA3US.js';
|
|
20
22
|
import useDebounced from './useDebounced-Dxncpg6z.js';
|
|
21
|
-
import { u as useLiveAdmin } from './use-live-admin-Dq6g3daN.js';
|
|
22
23
|
import { r as recordShard, l as loadRecentShards } from './shard-history-DyebH1R5.js';
|
|
23
24
|
|
|
24
25
|
const CAMEL_BOUNDARY_RE = /([a-z\d])([A-Z])/gu;
|
|
@@ -1564,7 +1565,7 @@ const useDataBrowserTable = (page, sorting, onSortingChange) => {
|
|
|
1564
1565
|
};
|
|
1565
1566
|
});
|
|
1566
1567
|
}, [columns, references]);
|
|
1567
|
-
const data = rows ?? [];
|
|
1568
|
+
const data = useMemo(() => rows ?? [], [rows]);
|
|
1568
1569
|
const [rowSelection, setRowSelection] = useState({});
|
|
1569
1570
|
const [columnVisibility, setColumnVisibility] = useState({});
|
|
1570
1571
|
const table = useReactTable({
|
|
@@ -2160,12 +2161,12 @@ const fromOrderBy = (orderBy) => orderBy === void 0 ? [] : [{
|
|
|
2160
2161
|
}];
|
|
2161
2162
|
const MAX_BULK_DELETE_BATCHES = 200;
|
|
2162
2163
|
const PREVIEW_CANDIDATES = 20;
|
|
2163
|
-
const LIST_TABLES$1 = adminRef(ADMIN_FUNCTIONS.listTables);
|
|
2164
2164
|
const READ_TABLE_PAGE$1 = adminRef(ADMIN_FUNCTIONS.readTablePage);
|
|
2165
2165
|
const FACET_COLUMN = adminRef(ADMIN_FUNCTIONS.facetColumn);
|
|
2166
2166
|
const WRITE_ROW$1 = adminRef(ADMIN_FUNCTIONS.writeRow);
|
|
2167
2167
|
const DELETE_ROWS = adminRef(ADMIN_FUNCTIONS.deleteRows);
|
|
2168
2168
|
const CLEAR_TABLE = adminRef(ADMIN_FUNCTIONS.clearTable);
|
|
2169
|
+
const NO_ARGS = {};
|
|
2169
2170
|
const META_COLUMNS = /* @__PURE__ */ new Set(["__doc__", "__id__", "_creationTime", "_id", "id"]);
|
|
2170
2171
|
const rowDocument = (row) => {
|
|
2171
2172
|
const raw = row["__doc__"];
|
|
@@ -2199,18 +2200,8 @@ const useDataBrowser = ({
|
|
|
2199
2200
|
const client = useLunora();
|
|
2200
2201
|
const [pageSize, setPageSize] = useState(initialPageSize);
|
|
2201
2202
|
const [shardKey, setShardKey] = useState(initialShardKey ?? "");
|
|
2202
|
-
const
|
|
2203
|
-
filters: initialFilters,
|
|
2204
|
-
orderBy: initialOrderBy,
|
|
2205
|
-
search: initialSearch,
|
|
2206
|
-
table: tableParam
|
|
2207
|
-
});
|
|
2208
|
-
const [tables, setTables] = useState(null);
|
|
2209
|
-
const [tablesError, setTablesError] = useState(null);
|
|
2210
|
-
const [selectedTable, setSelectedTable] = useState(null);
|
|
2203
|
+
const selectedTable = tableParam === void 0 || tableParam === "" ? null : tableParam;
|
|
2211
2204
|
const [offset, setOffset] = useState(0);
|
|
2212
|
-
const [page, setPage] = useState(null);
|
|
2213
|
-
const [pageError, setPageError] = useState(null);
|
|
2214
2205
|
const [viewMode, setViewMode] = useState("table");
|
|
2215
2206
|
const [sorting, setSorting] = useState(() => fromOrderBy(initialOrderBy));
|
|
2216
2207
|
const [filter, setFilter] = useState(initialSearch ?? "");
|
|
@@ -2225,183 +2216,160 @@ const useDataBrowser = ({
|
|
|
2225
2216
|
refetchFacets,
|
|
2226
2217
|
toggleFacet: toggleFacetColumn
|
|
2227
2218
|
} = useFacets();
|
|
2228
|
-
const sortingRef = useRef(sorting);
|
|
2229
|
-
sortingRef.current = sorting;
|
|
2230
2219
|
const [editing, setEditing] = useState(null);
|
|
2231
2220
|
const [writeError, setWriteError] = useState(null);
|
|
2232
2221
|
const stagedEdits = useStagedEdits();
|
|
2233
2222
|
const [editingCell, setEditingCell] = useState(null);
|
|
2234
2223
|
const [committing, setCommitting] = useState(false);
|
|
2235
|
-
const
|
|
2236
|
-
|
|
2237
|
-
|
|
2238
|
-
|
|
2239
|
-
|
|
2240
|
-
|
|
2241
|
-
|
|
2242
|
-
|
|
2243
|
-
|
|
2244
|
-
|
|
2245
|
-
|
|
2246
|
-
|
|
2247
|
-
|
|
2248
|
-
|
|
2249
|
-
|
|
2250
|
-
|
|
2251
|
-
|
|
2252
|
-
|
|
2253
|
-
|
|
2254
|
-
|
|
2255
|
-
|
|
2256
|
-
|
|
2257
|
-
|
|
2258
|
-
|
|
2259
|
-
|
|
2260
|
-
|
|
2261
|
-
|
|
2262
|
-
|
|
2263
|
-
|
|
2264
|
-
|
|
2265
|
-
|
|
2266
|
-
|
|
2267
|
-
|
|
2268
|
-
|
|
2269
|
-
|
|
2270
|
-
|
|
2271
|
-
|
|
2272
|
-
|
|
2273
|
-
|
|
2274
|
-
|
|
2275
|
-
|
|
2276
|
-
|
|
2277
|
-
|
|
2278
|
-
|
|
2279
|
-
if (fetchSeqRef.current !== seq) {
|
|
2280
|
-
return;
|
|
2281
|
-
}
|
|
2282
|
-
setPage(null);
|
|
2283
|
-
setPageError(error_0.message);
|
|
2284
|
-
}
|
|
2285
|
-
}, [client, pageSize]);
|
|
2224
|
+
const tablesQuery = useAdminQuery(ADMIN_FUNCTIONS.listTables, NO_ARGS, {
|
|
2225
|
+
live: true,
|
|
2226
|
+
shardKey: debouncedShard
|
|
2227
|
+
});
|
|
2228
|
+
const tables = tablesQuery.data ?? null;
|
|
2229
|
+
const tablesError = tablesQuery.error;
|
|
2230
|
+
const pageArgs = useMemo(() => {
|
|
2231
|
+
return {
|
|
2232
|
+
filters: toFilterClauses(filters),
|
|
2233
|
+
limit: pageSize,
|
|
2234
|
+
offset,
|
|
2235
|
+
orderBy: toOrderBy(sorting),
|
|
2236
|
+
search,
|
|
2237
|
+
// The page read skips the COUNT — the total rides a separate
|
|
2238
|
+
// predicate-keyed query (`countArgs`) that page navigation never
|
|
2239
|
+
// re-keys, so paging no longer re-runs the full-table COUNT.
|
|
2240
|
+
skipCount: true,
|
|
2241
|
+
table: selectedTable ?? ""
|
|
2242
|
+
};
|
|
2243
|
+
}, [filters, pageSize, offset, sorting, search, selectedTable]);
|
|
2244
|
+
const countArgs = useMemo(() => {
|
|
2245
|
+
return {
|
|
2246
|
+
filters: toFilterClauses(filters),
|
|
2247
|
+
limit: 1,
|
|
2248
|
+
search,
|
|
2249
|
+
table: selectedTable ?? ""
|
|
2250
|
+
};
|
|
2251
|
+
}, [filters, search, selectedTable]);
|
|
2252
|
+
const pageQuery = useAdminQuery(ADMIN_FUNCTIONS.readTablePage, pageArgs, {
|
|
2253
|
+
enabled: selectedTable !== null,
|
|
2254
|
+
keepPreviousData: false,
|
|
2255
|
+
live: true,
|
|
2256
|
+
shardKey: debouncedShard
|
|
2257
|
+
});
|
|
2258
|
+
const page = pageQuery.data ?? null;
|
|
2259
|
+
const pageError = pageQuery.error;
|
|
2260
|
+
const {
|
|
2261
|
+
liveError
|
|
2262
|
+
} = pageQuery;
|
|
2263
|
+
const countQuery = useAdminQuery(ADMIN_FUNCTIONS.readTablePage, countArgs, {
|
|
2264
|
+
enabled: selectedTable !== null,
|
|
2265
|
+
live: true,
|
|
2266
|
+
shardKey: debouncedShard
|
|
2267
|
+
});
|
|
2286
2268
|
useEffect(() => {
|
|
2287
|
-
|
|
2288
|
-
|
|
2289
|
-
|
|
2290
|
-
|
|
2291
|
-
|
|
2292
|
-
|
|
2293
|
-
|
|
2294
|
-
search: loaded?.search ?? "",
|
|
2295
|
-
table: loaded?.table ?? ""
|
|
2296
|
-
}, loaded?.shard ?? "", (result_1) => {
|
|
2297
|
-
setPageError(null);
|
|
2298
|
-
setLiveError(void 0);
|
|
2299
|
-
setPage(result_1);
|
|
2300
|
-
}, loaded !== null, setLiveError);
|
|
2301
|
-
useLiveAdmin(ADMIN_FUNCTIONS.listTables, {}, loaded?.shard ?? "", (result_2) => {
|
|
2302
|
-
setTablesError(null);
|
|
2303
|
-
setLiveError(void 0);
|
|
2304
|
-
setTables(result_2);
|
|
2305
|
-
}, loaded !== null, setLiveError);
|
|
2306
|
-
const appliedTableRef = useRef(null);
|
|
2307
|
-
const selectTable = useCallback((table_0) => {
|
|
2308
|
-
const hydration = hydrationRef.current?.table === void 0 || hydrationRef.current.table === table_0 ? hydrationRef.current : null;
|
|
2309
|
-
hydrationRef.current = null;
|
|
2310
|
-
const nextSorting = fromOrderBy(hydration?.orderBy);
|
|
2311
|
-
const nextFilters = toEditableFilters(hydration?.filters ?? []);
|
|
2312
|
-
const nextSearch = hydration?.search ?? "";
|
|
2313
|
-
setSorting(nextSorting);
|
|
2314
|
-
setFilter(nextSearch);
|
|
2315
|
-
setFilters(nextFilters);
|
|
2316
|
-
filtersRef.current = nextFilters;
|
|
2317
|
-
sortingRef.current = nextSorting;
|
|
2318
|
-
clearFacets();
|
|
2319
|
-
stagedEdits.clear();
|
|
2320
|
-
setEditingCell(null);
|
|
2321
|
-
setSelectedTable(table_0);
|
|
2322
|
-
appliedTableRef.current = table_0;
|
|
2323
|
-
fireAndForget(fetchPage(shardKey, table_0, 0, nextSearch));
|
|
2324
|
-
onSelectTable?.(table_0);
|
|
2325
|
-
}, [clearFacets, fetchPage, onSelectTable, shardKey, stagedEdits]);
|
|
2269
|
+
if (tablesQuery.data !== void 0) {
|
|
2270
|
+
recordShard(debouncedShard);
|
|
2271
|
+
}
|
|
2272
|
+
}, [tablesQuery.data, debouncedShard]);
|
|
2273
|
+
const selectTable = useCallback((table2) => {
|
|
2274
|
+
onSelectTable?.(table2);
|
|
2275
|
+
}, [onSelectTable]);
|
|
2326
2276
|
const navigateToRef = (targetTable, id) => {
|
|
2327
|
-
|
|
2328
|
-
|
|
2329
|
-
|
|
2330
|
-
clearFacets();
|
|
2331
|
-
setSelectedTable(targetTable);
|
|
2332
|
-
appliedTableRef.current = targetTable;
|
|
2333
|
-
setFilter(id);
|
|
2334
|
-
fireAndForget(fetchPage(shardKey, targetTable, 0, id));
|
|
2335
|
-
onSelectTable?.(targetTable);
|
|
2277
|
+
onSelectTable?.(targetTable, {
|
|
2278
|
+
search: id
|
|
2279
|
+
});
|
|
2336
2280
|
};
|
|
2337
|
-
const previewRef = async (
|
|
2281
|
+
const previewRef = async (targetTable, id) => {
|
|
2338
2282
|
try {
|
|
2339
|
-
const
|
|
2283
|
+
const result = await client.query(READ_TABLE_PAGE$1, {
|
|
2340
2284
|
filters: [],
|
|
2341
2285
|
limit: PREVIEW_CANDIDATES,
|
|
2342
2286
|
offset: 0,
|
|
2343
|
-
search:
|
|
2344
|
-
table:
|
|
2345
|
-
}, callOptions(
|
|
2346
|
-
return
|
|
2287
|
+
search: id,
|
|
2288
|
+
table: targetTable
|
|
2289
|
+
}, callOptions(debouncedShard));
|
|
2290
|
+
return result.rows.find((row) => rowId(row) === id) ?? null;
|
|
2347
2291
|
} catch {
|
|
2348
2292
|
return null;
|
|
2349
2293
|
}
|
|
2350
2294
|
};
|
|
2351
|
-
const facetFetcher = useCallback((
|
|
2295
|
+
const facetFetcher = useCallback((shard, table2, activeFilters, searchQuery) => (column) => client.query(FACET_COLUMN, {
|
|
2352
2296
|
column,
|
|
2353
|
-
filters: toFilterClauses(
|
|
2354
|
-
search:
|
|
2355
|
-
table:
|
|
2356
|
-
}, callOptions(
|
|
2357
|
-
const toggleFacet = (
|
|
2358
|
-
toggleFacetColumn(
|
|
2297
|
+
filters: toFilterClauses(activeFilters),
|
|
2298
|
+
search: searchQuery,
|
|
2299
|
+
table: table2
|
|
2300
|
+
}, callOptions(shard)), [client]);
|
|
2301
|
+
const toggleFacet = (column) => {
|
|
2302
|
+
toggleFacetColumn(column, selectedTable === null ? null : facetFetcher(debouncedShard, selectedTable, filtersRef.current, search));
|
|
2359
2303
|
};
|
|
2360
|
-
const facetFilter = (
|
|
2304
|
+
const facetFilter = (column, value) => {
|
|
2361
2305
|
const text = facetValueText(value);
|
|
2362
|
-
setFilters((current) => [...current.filter((clause) => clause.column !==
|
|
2363
|
-
column
|
|
2306
|
+
setFilters((current) => [...current.filter((clause) => clause.column !== column), {
|
|
2307
|
+
column,
|
|
2364
2308
|
operator: "eq",
|
|
2365
2309
|
value: text
|
|
2366
2310
|
}]);
|
|
2311
|
+
setOffset(0);
|
|
2367
2312
|
};
|
|
2313
|
+
const facetFetcherRef = useRef(facetFetcher);
|
|
2314
|
+
const refetchFacetsRef = useRef(refetchFacets);
|
|
2315
|
+
const onViewChangeRef = useRef(onViewChange);
|
|
2316
|
+
facetFetcherRef.current = facetFetcher;
|
|
2317
|
+
refetchFacetsRef.current = refetchFacets;
|
|
2318
|
+
onViewChangeRef.current = onViewChange;
|
|
2368
2319
|
useEffect(() => {
|
|
2369
|
-
if (
|
|
2320
|
+
if (selectedTable === null) {
|
|
2370
2321
|
return;
|
|
2371
2322
|
}
|
|
2372
|
-
|
|
2373
|
-
}, [
|
|
2323
|
+
refetchFacetsRef.current(facetFetcherRef.current(debouncedShard, selectedTable, filters, search));
|
|
2324
|
+
}, [debouncedShard, selectedTable, filters, search]);
|
|
2325
|
+
const seededTableRef = useRef(tableParam);
|
|
2374
2326
|
useEffect(() => {
|
|
2375
|
-
if (
|
|
2327
|
+
if (selectedTable === null || onViewChangeRef.current === void 0 || seededTableRef.current !== tableParam) {
|
|
2376
2328
|
return;
|
|
2377
2329
|
}
|
|
2378
|
-
|
|
2379
|
-
filters: toFilterClauses(
|
|
2380
|
-
orderBy: toOrderBy(
|
|
2381
|
-
search
|
|
2382
|
-
shard:
|
|
2330
|
+
onViewChangeRef.current({
|
|
2331
|
+
filters: toFilterClauses(filters),
|
|
2332
|
+
orderBy: toOrderBy(sorting),
|
|
2333
|
+
search,
|
|
2334
|
+
shard: debouncedShard
|
|
2383
2335
|
});
|
|
2384
|
-
}, [
|
|
2336
|
+
}, [selectedTable, tableParam, filters, sorting, search, debouncedShard]);
|
|
2337
|
+
const initialFiltersRef = useRef(initialFilters);
|
|
2338
|
+
const initialOrderByRef = useRef(initialOrderBy);
|
|
2339
|
+
const initialSearchRef = useRef(initialSearch);
|
|
2340
|
+
const initialShardKeyRef = useRef(initialShardKey);
|
|
2341
|
+
initialFiltersRef.current = initialFilters;
|
|
2342
|
+
initialOrderByRef.current = initialOrderBy;
|
|
2343
|
+
initialSearchRef.current = initialSearch;
|
|
2344
|
+
initialShardKeyRef.current = initialShardKey;
|
|
2385
2345
|
useEffect(() => {
|
|
2386
|
-
if (
|
|
2346
|
+
if (seededTableRef.current === tableParam) {
|
|
2387
2347
|
return;
|
|
2388
2348
|
}
|
|
2389
|
-
|
|
2390
|
-
const target = tableParam;
|
|
2349
|
+
seededTableRef.current = tableParam;
|
|
2391
2350
|
queueMicrotask(() => {
|
|
2392
|
-
|
|
2351
|
+
const nextFilters = toEditableFilters(initialFiltersRef.current ?? []);
|
|
2352
|
+
setSorting(fromOrderBy(initialOrderByRef.current));
|
|
2353
|
+
setFilter(initialSearchRef.current ?? "");
|
|
2354
|
+
setFilters(nextFilters);
|
|
2355
|
+
filtersRef.current = nextFilters;
|
|
2356
|
+
setShardKey(initialShardKeyRef.current ?? "");
|
|
2357
|
+
clearFacets();
|
|
2358
|
+
stagedEdits.clear();
|
|
2359
|
+
setEditingCell(null);
|
|
2360
|
+
setOffset(0);
|
|
2393
2361
|
});
|
|
2394
|
-
}, [tableParam
|
|
2395
|
-
const goToPage = (
|
|
2362
|
+
}, [tableParam]);
|
|
2363
|
+
const goToPage = (nextOffset) => {
|
|
2396
2364
|
if (selectedTable === null) {
|
|
2397
2365
|
return;
|
|
2398
2366
|
}
|
|
2399
|
-
|
|
2367
|
+
setOffset(Math.max(0, nextOffset));
|
|
2400
2368
|
};
|
|
2401
|
-
const editableColumn = (
|
|
2402
|
-
const startCellEdit = (targetRow,
|
|
2369
|
+
const editableColumn = (column) => !META_COLUMNS.has(column);
|
|
2370
|
+
const startCellEdit = (targetRow, column) => {
|
|
2403
2371
|
setEditingCell({
|
|
2404
|
-
column
|
|
2372
|
+
column,
|
|
2405
2373
|
rowId: targetRow
|
|
2406
2374
|
});
|
|
2407
2375
|
};
|
|
@@ -2415,19 +2383,19 @@ const useDataBrowser = ({
|
|
|
2415
2383
|
setWriteError(null);
|
|
2416
2384
|
setCommitting(true);
|
|
2417
2385
|
try {
|
|
2418
|
-
for (const [
|
|
2386
|
+
for (const [id, columns] of Object.entries(stagedEdits.staged)) {
|
|
2419
2387
|
await client.query(WRITE_ROW$1, {
|
|
2420
2388
|
doc: columns,
|
|
2421
|
-
id
|
|
2389
|
+
id,
|
|
2422
2390
|
op: "patch",
|
|
2423
2391
|
table: selectedTable
|
|
2424
|
-
}, callOptions(
|
|
2392
|
+
}, callOptions(debouncedShard));
|
|
2425
2393
|
}
|
|
2426
2394
|
stagedEdits.clear();
|
|
2427
2395
|
setEditingCell(null);
|
|
2428
|
-
|
|
2429
|
-
} catch (
|
|
2430
|
-
setWriteError(
|
|
2396
|
+
pageQuery.refetch();
|
|
2397
|
+
} catch (error) {
|
|
2398
|
+
setWriteError(error.message);
|
|
2431
2399
|
} finally {
|
|
2432
2400
|
setCommitting(false);
|
|
2433
2401
|
}
|
|
@@ -2438,50 +2406,26 @@ const useDataBrowser = ({
|
|
|
2438
2406
|
};
|
|
2439
2407
|
const stagedChanges = useMemo(() => {
|
|
2440
2408
|
const rowsById = /* @__PURE__ */ new Map();
|
|
2441
|
-
for (const
|
|
2442
|
-
const
|
|
2443
|
-
if (
|
|
2444
|
-
rowsById.set(
|
|
2409
|
+
for (const row of page?.rows ?? []) {
|
|
2410
|
+
const id = rowId(row);
|
|
2411
|
+
if (id !== null) {
|
|
2412
|
+
rowsById.set(id, row);
|
|
2445
2413
|
}
|
|
2446
2414
|
}
|
|
2447
2415
|
const changes = [];
|
|
2448
|
-
for (const [
|
|
2449
|
-
for (const [
|
|
2416
|
+
for (const [id, columns] of Object.entries(stagedEdits.staged)) {
|
|
2417
|
+
for (const [column, newValue] of Object.entries(columns)) {
|
|
2450
2418
|
changes.push({
|
|
2451
|
-
column
|
|
2419
|
+
column,
|
|
2452
2420
|
newValue,
|
|
2453
|
-
oldValue: rowsById.get(
|
|
2454
|
-
rowId:
|
|
2421
|
+
oldValue: rowsById.get(id)?.[column],
|
|
2422
|
+
rowId: id
|
|
2455
2423
|
});
|
|
2456
2424
|
}
|
|
2457
2425
|
}
|
|
2458
2426
|
return changes;
|
|
2459
2427
|
}, [page, stagedEdits.staged]);
|
|
2460
|
-
|
|
2461
|
-
if (selectedTable === null || loaded === null || loaded.search === search) {
|
|
2462
|
-
return;
|
|
2463
|
-
}
|
|
2464
|
-
fireAndForget(fetchPage(shardKey, selectedTable, 0, search));
|
|
2465
|
-
}, [search, selectedTable, shardKey, loaded, fetchPage]);
|
|
2466
|
-
useEffect(() => {
|
|
2467
|
-
if (selectedTable === null || loaded === null || loaded.filters === filters) {
|
|
2468
|
-
return;
|
|
2469
|
-
}
|
|
2470
|
-
fireAndForget(fetchPage(shardKey, selectedTable, 0, search));
|
|
2471
|
-
}, [filters, selectedTable, shardKey, loaded, search, fetchPage]);
|
|
2472
|
-
useEffect(() => {
|
|
2473
|
-
if (selectedTable === null || loaded === null || loaded.sort === sorting) {
|
|
2474
|
-
return;
|
|
2475
|
-
}
|
|
2476
|
-
fireAndForget(fetchPage(shardKey, selectedTable, 0, search));
|
|
2477
|
-
}, [sorting, selectedTable, shardKey, loaded, search, fetchPage]);
|
|
2478
|
-
useEffect(() => {
|
|
2479
|
-
if (selectedTable === null || loaded === null || loaded.pageSize === pageSize) {
|
|
2480
|
-
return;
|
|
2481
|
-
}
|
|
2482
|
-
fireAndForget(fetchPage(shardKey, selectedTable, 0, search));
|
|
2483
|
-
}, [pageSize, selectedTable, shardKey, loaded, search, fetchPage]);
|
|
2484
|
-
const writeRow = async (op, id_4, documentText) => {
|
|
2428
|
+
const writeRow = async (op, id, documentText) => {
|
|
2485
2429
|
if (selectedTable === null) {
|
|
2486
2430
|
return;
|
|
2487
2431
|
}
|
|
@@ -2490,22 +2434,22 @@ const useDataBrowser = ({
|
|
|
2490
2434
|
if (op !== "delete") {
|
|
2491
2435
|
try {
|
|
2492
2436
|
parsedDocument = documentText === void 0 || documentText.trim() === "" ? {} : JSON.parse(documentText);
|
|
2493
|
-
} catch (
|
|
2494
|
-
setWriteError(`Invalid JSON: ${
|
|
2437
|
+
} catch (error) {
|
|
2438
|
+
setWriteError(`Invalid JSON: ${error.message}`);
|
|
2495
2439
|
return;
|
|
2496
2440
|
}
|
|
2497
2441
|
}
|
|
2498
2442
|
try {
|
|
2499
2443
|
await client.query(WRITE_ROW$1, {
|
|
2500
2444
|
doc: parsedDocument,
|
|
2501
|
-
id:
|
|
2445
|
+
id: id ?? void 0,
|
|
2502
2446
|
op,
|
|
2503
2447
|
table: selectedTable
|
|
2504
|
-
}, callOptions(
|
|
2448
|
+
}, callOptions(debouncedShard));
|
|
2505
2449
|
setEditing(null);
|
|
2506
|
-
|
|
2507
|
-
} catch (
|
|
2508
|
-
setWriteError(
|
|
2450
|
+
pageQuery.refetch();
|
|
2451
|
+
} catch (error) {
|
|
2452
|
+
setWriteError(error.message);
|
|
2509
2453
|
}
|
|
2510
2454
|
};
|
|
2511
2455
|
const drainBulk = async (ref, args) => {
|
|
@@ -2515,17 +2459,22 @@ const useDataBrowser = ({
|
|
|
2515
2459
|
setWriteError(null);
|
|
2516
2460
|
try {
|
|
2517
2461
|
for (let batch = 0; batch < MAX_BULK_DELETE_BATCHES; batch += 1) {
|
|
2518
|
-
const
|
|
2519
|
-
if (!
|
|
2462
|
+
const result = await client.query(ref, args, callOptions(debouncedShard));
|
|
2463
|
+
if (!result.hasMore) {
|
|
2520
2464
|
break;
|
|
2521
2465
|
}
|
|
2522
2466
|
}
|
|
2523
|
-
|
|
2524
|
-
|
|
2525
|
-
|
|
2467
|
+
setOffset(0);
|
|
2468
|
+
pageQuery.refetch();
|
|
2469
|
+
} catch (error) {
|
|
2470
|
+
setWriteError(error.message);
|
|
2526
2471
|
}
|
|
2527
2472
|
};
|
|
2528
|
-
const
|
|
2473
|
+
const changeSorting = (updater) => {
|
|
2474
|
+
setSorting(updater);
|
|
2475
|
+
setOffset(0);
|
|
2476
|
+
};
|
|
2477
|
+
const table = useDataBrowserTable(page, sorting, changeSorting);
|
|
2529
2478
|
const currentView = {
|
|
2530
2479
|
filters: toFilterClauses(filters),
|
|
2531
2480
|
orderBy: toOrderBy(sorting),
|
|
@@ -2533,13 +2482,13 @@ const useDataBrowser = ({
|
|
|
2533
2482
|
shard: shardKey,
|
|
2534
2483
|
table: selectedTable ?? void 0
|
|
2535
2484
|
};
|
|
2536
|
-
const total =
|
|
2485
|
+
const total = countQuery.data?.total ?? (page === null ? 0 : offset + page.rows.length);
|
|
2537
2486
|
const hasPrevious = offset > 0;
|
|
2538
2487
|
const hasNext = page !== null && offset + page.rows.length < total;
|
|
2539
2488
|
const rangeStart = page === null || page.rows.length === 0 ? 0 : offset + 1;
|
|
2540
2489
|
const rangeEnd = page === null ? 0 : offset + page.rows.length;
|
|
2541
2490
|
const loadTables = () => {
|
|
2542
|
-
|
|
2491
|
+
tablesQuery.refetch();
|
|
2543
2492
|
};
|
|
2544
2493
|
const showTable = () => {
|
|
2545
2494
|
setViewMode("table");
|
|
@@ -2561,13 +2510,18 @@ const useDataBrowser = ({
|
|
|
2561
2510
|
};
|
|
2562
2511
|
const onFilterChange = (event) => {
|
|
2563
2512
|
setFilter(event.target.value);
|
|
2513
|
+
setOffset(0);
|
|
2514
|
+
};
|
|
2515
|
+
const changeFilters = (next) => {
|
|
2516
|
+
setFilters(next);
|
|
2517
|
+
setOffset(0);
|
|
2564
2518
|
};
|
|
2565
2519
|
const addRow = () => {
|
|
2566
2520
|
setWriteError(null);
|
|
2567
2521
|
const seed = {};
|
|
2568
|
-
for (const
|
|
2569
|
-
if (!META_COLUMNS.has(
|
|
2570
|
-
seed[
|
|
2522
|
+
for (const column of page?.columns ?? []) {
|
|
2523
|
+
if (!META_COLUMNS.has(column)) {
|
|
2524
|
+
seed[column] = "";
|
|
2571
2525
|
}
|
|
2572
2526
|
}
|
|
2573
2527
|
setEditing({
|
|
@@ -2575,10 +2529,10 @@ const useDataBrowser = ({
|
|
|
2575
2529
|
id: ""
|
|
2576
2530
|
});
|
|
2577
2531
|
};
|
|
2578
|
-
const setEditorDocumentText = (
|
|
2579
|
-
setEditing((
|
|
2580
|
-
docText:
|
|
2581
|
-
id:
|
|
2532
|
+
const setEditorDocumentText = (text) => {
|
|
2533
|
+
setEditing((current) => current === null ? current : {
|
|
2534
|
+
docText: text,
|
|
2535
|
+
id: current.id
|
|
2582
2536
|
});
|
|
2583
2537
|
};
|
|
2584
2538
|
const saveEdit = () => {
|
|
@@ -2604,15 +2558,15 @@ const useDataBrowser = ({
|
|
|
2604
2558
|
setPageSize(size);
|
|
2605
2559
|
setOffset(0);
|
|
2606
2560
|
};
|
|
2607
|
-
const onRowEdit = (
|
|
2561
|
+
const onRowEdit = (id, original) => {
|
|
2608
2562
|
setWriteError(null);
|
|
2609
2563
|
setEditing({
|
|
2610
2564
|
docText: JSON.stringify(rowDocument(original), null, 2),
|
|
2611
|
-
id
|
|
2565
|
+
id
|
|
2612
2566
|
});
|
|
2613
2567
|
};
|
|
2614
|
-
const onRowDelete = (
|
|
2615
|
-
fireAndForget(writeRow("delete",
|
|
2568
|
+
const onRowDelete = (id) => {
|
|
2569
|
+
fireAndForget(writeRow("delete", id));
|
|
2616
2570
|
};
|
|
2617
2571
|
const deleteSelected = async (ids) => {
|
|
2618
2572
|
if (selectedTable === null || ids.length === 0) {
|
|
@@ -2620,20 +2574,20 @@ const useDataBrowser = ({
|
|
|
2620
2574
|
}
|
|
2621
2575
|
setWriteError(null);
|
|
2622
2576
|
try {
|
|
2623
|
-
for (const
|
|
2577
|
+
for (const id of ids) {
|
|
2624
2578
|
await client.query(WRITE_ROW$1, {
|
|
2625
|
-
id
|
|
2579
|
+
id,
|
|
2626
2580
|
op: "delete",
|
|
2627
2581
|
table: selectedTable
|
|
2628
|
-
}, callOptions(
|
|
2582
|
+
}, callOptions(debouncedShard));
|
|
2629
2583
|
}
|
|
2630
|
-
|
|
2631
|
-
} catch (
|
|
2632
|
-
setWriteError(
|
|
2584
|
+
pageQuery.refetch();
|
|
2585
|
+
} catch (error) {
|
|
2586
|
+
setWriteError(error.message);
|
|
2633
2587
|
}
|
|
2634
2588
|
};
|
|
2635
|
-
const onBulkDeleteSelected = (
|
|
2636
|
-
fireAndForget(deleteSelected(
|
|
2589
|
+
const onBulkDeleteSelected = (ids) => {
|
|
2590
|
+
fireAndForget(deleteSelected(ids));
|
|
2637
2591
|
};
|
|
2638
2592
|
const onCommitStaged = () => {
|
|
2639
2593
|
fireAndForget(commitStaged());
|
|
@@ -2667,7 +2621,7 @@ const useDataBrowser = ({
|
|
|
2667
2621
|
onBulkDeleteSelected,
|
|
2668
2622
|
onCommitStaged,
|
|
2669
2623
|
onFilterChange,
|
|
2670
|
-
onFiltersChange:
|
|
2624
|
+
onFiltersChange: changeFilters,
|
|
2671
2625
|
onRowDelete,
|
|
2672
2626
|
onRowEdit,
|
|
2673
2627
|
page,
|
|
@@ -2688,7 +2642,7 @@ const useDataBrowser = ({
|
|
|
2688
2642
|
stagedChanges,
|
|
2689
2643
|
stagedValue: stagedEdits.stagedValue,
|
|
2690
2644
|
startCellEdit,
|
|
2691
|
-
table
|
|
2645
|
+
table,
|
|
2692
2646
|
tables,
|
|
2693
2647
|
tablesError,
|
|
2694
2648
|
toggleFacet,
|
|
@@ -2812,23 +2766,20 @@ const useGenerateRows = (onRefresh) => {
|
|
|
2812
2766
|
};
|
|
2813
2767
|
};
|
|
2814
2768
|
|
|
2815
|
-
const MASK_POLICIES = adminRef(ADMIN_FUNCTIONS.maskPolicies);
|
|
2816
2769
|
const NO_COLUMNS = [];
|
|
2817
2770
|
const useMaskPolicies = () => {
|
|
2818
|
-
const
|
|
2819
|
-
|
|
2820
|
-
|
|
2821
|
-
|
|
2822
|
-
|
|
2823
|
-
|
|
2824
|
-
|
|
2825
|
-
|
|
2826
|
-
|
|
2827
|
-
|
|
2828
|
-
|
|
2829
|
-
|
|
2830
|
-
}, [refresh]);
|
|
2831
|
-
return columns;
|
|
2771
|
+
const $ = c(1);
|
|
2772
|
+
let t0;
|
|
2773
|
+
if ($[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
|
|
2774
|
+
t0 = {};
|
|
2775
|
+
$[0] = t0;
|
|
2776
|
+
} else {
|
|
2777
|
+
t0 = $[0];
|
|
2778
|
+
}
|
|
2779
|
+
const {
|
|
2780
|
+
data
|
|
2781
|
+
} = useAdminQuery(ADMIN_FUNCTIONS.maskPolicies, t0);
|
|
2782
|
+
return Array.isArray(data?.columns) ? data.columns : NO_COLUMNS;
|
|
2832
2783
|
};
|
|
2833
2784
|
|
|
2834
2785
|
const TIMESTAMP_RE$1 = /(?:_creationtime|(?:^|[a-z])(?:time|at))$/iu;
|