ee6989a575
* refactor: add server and client raqbUtils modules Add two new modules to split RAQB utilities: - raqbUtils.server.ts: Server-safe utilities without RAQB runtime - raqbUtils.client.ts: Client-only utilities requiring RAQB runtime This enables server-side code to import RAQB utilities without pulling in the react-awesome-query-builder runtime library. Co-Authored-By: Volnei Munhoz <volnei.munhoz@gmail.com> * refactor: update imports to use server/client raqbUtils modules and fix lint warnings Co-Authored-By: Volnei Munhoz <volnei.munhoz@gmail.com> * fix: fix type errors in getLuckyUser.ts and remove dead code in RouteBuilder.tsx Co-Authored-By: Volnei Munhoz <volnei.munhoz@gmail.com> --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
35 lines
1.0 KiB
TypeScript
35 lines
1.0 KiB
TypeScript
"use client";
|
|
|
|
/**
|
|
* Client-only RAQB utilities that require the react-awesome-query-builder runtime.
|
|
* These functions should only be imported in client-side React components.
|
|
*/
|
|
import type { JsonTree } from "react-awesome-query-builder";
|
|
import type { Config } from "react-awesome-query-builder";
|
|
import { Utils as QbUtils } from "react-awesome-query-builder";
|
|
|
|
export function buildEmptyQueryValue() {
|
|
return { id: QbUtils.uuid(), type: "group" as const };
|
|
}
|
|
|
|
export const buildStateFromQueryValue = ({
|
|
queryValue,
|
|
config,
|
|
}: {
|
|
/**
|
|
* Allow null as the queryValue as initially there could be no queryValue and without that we can't build the state and can't show the UI
|
|
*/
|
|
queryValue: JsonTree | null;
|
|
config: Config;
|
|
}) => {
|
|
const queryValueToUse = queryValue || buildEmptyQueryValue();
|
|
const immutableTree = QbUtils.checkTree(QbUtils.loadTree(queryValueToUse), config);
|
|
return {
|
|
state: {
|
|
tree: immutableTree,
|
|
config,
|
|
},
|
|
queryValue: QbUtils.getTree(immutableTree),
|
|
};
|
|
};
|