@nubase/frontend 0.1.22 → 0.1.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +6 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +41 -14
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +33 -6
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -513,6 +513,12 @@ type UseSchemaFiltersReturn<TSchema extends ObjectSchema<any>> = {
|
|
|
513
513
|
filterDescriptors: FilterFieldDescriptor[];
|
|
514
514
|
/** Get params for API call (removes empty/undefined values) */
|
|
515
515
|
getRequestParams: () => Record<string, unknown>;
|
|
516
|
+
/** Global search value (if schema has "q" field) */
|
|
517
|
+
searchValue: string;
|
|
518
|
+
/** Update global search value */
|
|
519
|
+
setSearchValue: (value: string) => void;
|
|
520
|
+
/** Whether the schema supports global text search (has "q" field) */
|
|
521
|
+
hasTextSearch: boolean;
|
|
516
522
|
};
|
|
517
523
|
/**
|
|
518
524
|
* Hook for managing schema-derived filter state.
|
package/dist/index.d.ts
CHANGED
|
@@ -513,6 +513,12 @@ type UseSchemaFiltersReturn<TSchema extends ObjectSchema<any>> = {
|
|
|
513
513
|
filterDescriptors: FilterFieldDescriptor[];
|
|
514
514
|
/** Get params for API call (removes empty/undefined values) */
|
|
515
515
|
getRequestParams: () => Record<string, unknown>;
|
|
516
|
+
/** Global search value (if schema has "q" field) */
|
|
517
|
+
searchValue: string;
|
|
518
|
+
/** Update global search value */
|
|
519
|
+
setSearchValue: (value: string) => void;
|
|
520
|
+
/** Whether the schema supports global text search (has "q" field) */
|
|
521
|
+
hasTextSearch: boolean;
|
|
516
522
|
};
|
|
517
523
|
/**
|
|
518
524
|
* Hook for managing schema-derived filter state.
|
package/dist/index.js
CHANGED
|
@@ -7772,7 +7772,7 @@ var workbenchOpenResourceOperation = createCommand({
|
|
|
7772
7772
|
});
|
|
7773
7773
|
|
|
7774
7774
|
// src/commands/definitions/workbench.openResourceInModal.tsx
|
|
7775
|
-
var
|
|
7775
|
+
var import_core8 = require("@nubase/core");
|
|
7776
7776
|
var import_lucide_react10 = require("lucide-react");
|
|
7777
7777
|
|
|
7778
7778
|
// src/components/form/SchemaForm/useSchemaForm.ts
|
|
@@ -8020,6 +8020,7 @@ function useResourceViewQuery(resourceId, view, params, options) {
|
|
|
8020
8020
|
}
|
|
8021
8021
|
|
|
8022
8022
|
// src/hooks/useSchemaFilters.ts
|
|
8023
|
+
var import_core7 = require("@nubase/core");
|
|
8023
8024
|
var import_react29 = require("react");
|
|
8024
8025
|
|
|
8025
8026
|
// src/components/schema-filter-bar/introspect-schema.ts
|
|
@@ -8053,6 +8054,9 @@ function introspectSchemaForFilters(schema, config) {
|
|
|
8053
8054
|
const descriptors = [];
|
|
8054
8055
|
const shape = schema._shape;
|
|
8055
8056
|
for (const [fieldName, fieldSchema] of Object.entries(shape)) {
|
|
8057
|
+
if (fieldName === import_core6.SEARCH_FIELD_NAME) {
|
|
8058
|
+
continue;
|
|
8059
|
+
}
|
|
8056
8060
|
if (config?.excludeFields?.includes(fieldName)) {
|
|
8057
8061
|
continue;
|
|
8058
8062
|
}
|
|
@@ -8082,6 +8086,10 @@ function introspectSchemaForFilters(schema, config) {
|
|
|
8082
8086
|
|
|
8083
8087
|
// src/hooks/useSchemaFilters.ts
|
|
8084
8088
|
function useSchemaFilters(schema, options) {
|
|
8089
|
+
const hasTextSearch = (0, import_react29.useMemo)(() => {
|
|
8090
|
+
if (!schema) return false;
|
|
8091
|
+
return import_core7.SEARCH_FIELD_NAME in schema._shape;
|
|
8092
|
+
}, [schema]);
|
|
8085
8093
|
const filterDescriptors = (0, import_react29.useMemo)(() => {
|
|
8086
8094
|
if (!schema) return [];
|
|
8087
8095
|
return introspectSchemaForFilters(schema, options);
|
|
@@ -8089,6 +8097,10 @@ function useSchemaFilters(schema, options) {
|
|
|
8089
8097
|
const [filterState, setFilterState] = (0, import_react29.useState)(
|
|
8090
8098
|
{}
|
|
8091
8099
|
);
|
|
8100
|
+
const [searchValue, setSearchValueState] = (0, import_react29.useState)("");
|
|
8101
|
+
const setSearchValue = (0, import_react29.useCallback)((value) => {
|
|
8102
|
+
setSearchValueState(value);
|
|
8103
|
+
}, []);
|
|
8092
8104
|
const setFilterValue = (0, import_react29.useCallback)((field, value) => {
|
|
8093
8105
|
setFilterState((prev) => ({
|
|
8094
8106
|
...prev,
|
|
@@ -8106,8 +8118,12 @@ function useSchemaFilters(schema, options) {
|
|
|
8106
8118
|
);
|
|
8107
8119
|
const clearFilters = (0, import_react29.useCallback)(() => {
|
|
8108
8120
|
setFilterState({});
|
|
8121
|
+
setSearchValueState("");
|
|
8109
8122
|
}, []);
|
|
8110
8123
|
const hasActiveFilters = (0, import_react29.useMemo)(() => {
|
|
8124
|
+
if (searchValue.trim() !== "") {
|
|
8125
|
+
return true;
|
|
8126
|
+
}
|
|
8111
8127
|
return Object.entries(filterState).some(([, value]) => {
|
|
8112
8128
|
if (value === void 0 || value === null || value === "") {
|
|
8113
8129
|
return false;
|
|
@@ -8117,9 +8133,12 @@ function useSchemaFilters(schema, options) {
|
|
|
8117
8133
|
}
|
|
8118
8134
|
return true;
|
|
8119
8135
|
});
|
|
8120
|
-
}, [filterState]);
|
|
8136
|
+
}, [filterState, searchValue]);
|
|
8121
8137
|
const getRequestParams = (0, import_react29.useCallback)(() => {
|
|
8122
8138
|
const params = {};
|
|
8139
|
+
if (searchValue.trim() !== "") {
|
|
8140
|
+
params[import_core7.SEARCH_FIELD_NAME] = searchValue.trim();
|
|
8141
|
+
}
|
|
8123
8142
|
for (const [key, value] of Object.entries(filterState)) {
|
|
8124
8143
|
if (value === void 0 || value === null || value === "") {
|
|
8125
8144
|
continue;
|
|
@@ -8130,7 +8149,7 @@ function useSchemaFilters(schema, options) {
|
|
|
8130
8149
|
params[key] = value;
|
|
8131
8150
|
}
|
|
8132
8151
|
return params;
|
|
8133
|
-
}, [filterState]);
|
|
8152
|
+
}, [filterState, searchValue]);
|
|
8134
8153
|
return {
|
|
8135
8154
|
filterState,
|
|
8136
8155
|
setFilterValue,
|
|
@@ -8138,7 +8157,10 @@ function useSchemaFilters(schema, options) {
|
|
|
8138
8157
|
clearFilters,
|
|
8139
8158
|
hasActiveFilters,
|
|
8140
8159
|
filterDescriptors,
|
|
8141
|
-
getRequestParams
|
|
8160
|
+
getRequestParams,
|
|
8161
|
+
searchValue,
|
|
8162
|
+
setSearchValue,
|
|
8163
|
+
hasTextSearch
|
|
8142
8164
|
};
|
|
8143
8165
|
}
|
|
8144
8166
|
|
|
@@ -12186,12 +12208,12 @@ var ModalViewRenderer = (props) => {
|
|
|
12186
12208
|
|
|
12187
12209
|
// src/commands/definitions/workbench.openResourceInModal.tsx
|
|
12188
12210
|
var import_jsx_runtime70 = require("react/jsx-runtime");
|
|
12189
|
-
var workbenchOpenResourceOperationInModalArgsSchema =
|
|
12190
|
-
resourceId:
|
|
12211
|
+
var workbenchOpenResourceOperationInModalArgsSchema = import_core8.nu.object({
|
|
12212
|
+
resourceId: import_core8.nu.string().withMeta({
|
|
12191
12213
|
label: "Resource ID",
|
|
12192
12214
|
description: "The ID of the resource to open"
|
|
12193
12215
|
}).optional(),
|
|
12194
|
-
operation:
|
|
12216
|
+
operation: import_core8.nu.string().withMeta({
|
|
12195
12217
|
label: "Operation",
|
|
12196
12218
|
description: "The operation to perform on the resource"
|
|
12197
12219
|
}).optional()
|
|
@@ -12344,11 +12366,11 @@ var workbenchRunCommand = createCommand({
|
|
|
12344
12366
|
});
|
|
12345
12367
|
|
|
12346
12368
|
// src/commands/definitions/workbench.setTheme.tsx
|
|
12347
|
-
var
|
|
12369
|
+
var import_core9 = require("@nubase/core");
|
|
12348
12370
|
var import_lucide_react12 = require("lucide-react");
|
|
12349
12371
|
var import_jsx_runtime72 = require("react/jsx-runtime");
|
|
12350
|
-
var workbenchSetThemeArgsSchema =
|
|
12351
|
-
themeId:
|
|
12372
|
+
var workbenchSetThemeArgsSchema = import_core9.nu.object({
|
|
12373
|
+
themeId: import_core9.nu.string().withMeta({
|
|
12352
12374
|
label: "Theme ID",
|
|
12353
12375
|
description: "The ID of the theme to set"
|
|
12354
12376
|
}).optional()
|
|
@@ -15377,7 +15399,7 @@ var ResourceCreateViewRenderer = (props) => {
|
|
|
15377
15399
|
};
|
|
15378
15400
|
|
|
15379
15401
|
// src/components/views/ViewRenderer/screen/ResourceSearchViewRenderer.tsx
|
|
15380
|
-
var
|
|
15402
|
+
var import_core10 = require("@nubase/core");
|
|
15381
15403
|
var import_react_router5 = require("@tanstack/react-router");
|
|
15382
15404
|
var import_react69 = require("react");
|
|
15383
15405
|
|
|
@@ -16428,7 +16450,7 @@ var DEFAULT_COLUMN_WIDTHS = {
|
|
|
16428
16450
|
// Will use the wrapped type's width
|
|
16429
16451
|
};
|
|
16430
16452
|
var getDefaultColumnWidth = (fieldSchema) => {
|
|
16431
|
-
if (fieldSchema instanceof
|
|
16453
|
+
if (fieldSchema instanceof import_core10.OptionalSchema) {
|
|
16432
16454
|
return getDefaultColumnWidth(fieldSchema.unwrap());
|
|
16433
16455
|
}
|
|
16434
16456
|
return DEFAULT_COLUMN_WIDTHS[fieldSchema.type] || 150;
|
|
@@ -16451,7 +16473,10 @@ var ResourceSearchViewRenderer = (props) => {
|
|
|
16451
16473
|
clearFilters,
|
|
16452
16474
|
hasActiveFilters,
|
|
16453
16475
|
filterDescriptors,
|
|
16454
|
-
getRequestParams
|
|
16476
|
+
getRequestParams,
|
|
16477
|
+
searchValue,
|
|
16478
|
+
setSearchValue,
|
|
16479
|
+
hasTextSearch
|
|
16455
16480
|
} = useSchemaFilters(view.schemaFilter);
|
|
16456
16481
|
const mergedParams = (0, import_react69.useMemo)(() => {
|
|
16457
16482
|
const filterParams = getRequestParams();
|
|
@@ -16652,7 +16677,9 @@ var ResourceSearchViewRenderer = (props) => {
|
|
|
16652
16677
|
filterState,
|
|
16653
16678
|
onFilterChange: setFilterValue,
|
|
16654
16679
|
onClearFilters: clearFilters,
|
|
16655
|
-
showClearFilters: hasActiveFilters
|
|
16680
|
+
showClearFilters: hasActiveFilters,
|
|
16681
|
+
searchValue: hasTextSearch ? searchValue : "",
|
|
16682
|
+
onSearchChange: hasTextSearch ? setSearchValue : void 0
|
|
16656
16683
|
}
|
|
16657
16684
|
),
|
|
16658
16685
|
bulkActions.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(ActionBar, { actions: bulkActions }),
|