@c-rex/templates 0.0.8 → 0.0.9
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/home/layout.cjs.js +893 -0
- package/dist/home/layout.cjs.js.map +1 -0
- package/dist/home/layout.d.cts +13 -0
- package/dist/home/layout.d.ts +13 -0
- package/dist/home/layout.esm.js +827 -0
- package/dist/home/layout.esm.js.map +1 -0
- package/dist/home/page.cjs.js +812 -0
- package/dist/home/page.cjs.js.map +1 -0
- package/dist/home/page.d.cts +9 -0
- package/dist/home/page.d.ts +9 -0
- package/dist/home/page.esm.js +746 -0
- package/dist/home/page.esm.js.map +1 -0
- package/dist/info/page.cjs.js +820 -0
- package/dist/info/page.cjs.js.map +1 -0
- package/dist/info/page.d.cts +9 -0
- package/dist/info/page.d.ts +9 -0
- package/dist/info/page.esm.js +755 -0
- package/dist/info/page.esm.js.map +1 -0
- package/dist/layout.cjs.js +89 -0
- package/dist/layout.cjs.js.map +1 -0
- package/dist/layout.d.cts +9 -0
- package/dist/layout.d.ts +9 -0
- package/dist/layout.esm.js +28 -0
- package/dist/layout.esm.js.map +1 -0
- package/package.json +18 -12
- package/src/home/layout.tsx +0 -61
- package/src/home/page.tsx +0 -65
- package/src/info/page.tsx +0 -66
- package/src/layout.tsx +0 -26
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/periotto/Desktop/workspace/c-rex.net-web-client-foundation/packages/templates/dist/home/layout.esm.js","../../../core/src/requests.ts","../../../constants/src/index.ts","../../../core/src/cookies.ts","../../../core/src/sdk.ts","../../../utils/src/utils.ts","../../../utils/src/classMerge.ts","../../../services/src/baseService.ts","../../../services/src/transforms/information.ts","../../../services/src/informationUnits.ts","../../src/home/layout.tsx","../../src/home/page.tsx"],"names":["axios","API","MAX_RETRY","API_TIMEOUT","API_HEADERS","CrexApi","baseUrl","logger","apiClient","create","baseURL","headers","execute","url","method","params","body","response","retry","error","request","data","log","Error","GLOBAL_KEY","CONFIG_COOKIE_KEY","isBrowser","window","document","parseCookies","cookies","cookie","split","forEach","key","value","trim","decodeURIComponent","setCookie","name","days","expires","Date","now","toUTCString","encodeURIComponent","setConfig","config","JSON","stringify","global","globalConfig","getConfig","returnValue","configStr","parse","CrexSDK","customerConfig","api","createParams","fieldsList","map","item","updateUrlWithParams","router","searchParams","URLSearchParams","location","search","param","set","toString","queryString","push","pathname","generateQueryParams","queryParams","join","clsx","twMerge","BaseService","endpoint","SDK","path","transformer","length","console","transformInformationUnits","items","pageInfo","InformationUnitsService","getList","queries","page","fields","language","remainFields","getItem","id","getLanguages","getSuggestions","query","suggestions","SearchStateWrapper","useRouter","Button","AutoComplete","ResultList","jsx","jsxs","HomePage","initialValue","onSearch","service","onSelect","className","children","variant","loadData","pageAux","searchValue","availableLanguages","selectedLanguages","aux","Number","filters","selectedLanguage","HomeLayout"],"mappings":"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","sourcesContent":["// ../core/src/requests.ts\nimport axios from \"axios\";\n\n// ../constants/src/index.ts\nvar API = {\n MAX_RETRY: 3,\n API_TIMEOUT: 1e4,\n API_HEADERS: {\n \"content-Type\": \"application/json\"\n }\n};\n\n// ../core/src/requests.ts\nvar CrexApi = class {\n constructor(baseUrl, logger) {\n this.apiClient = axios.create({\n baseURL: baseUrl,\n headers: {\n \"content-Type\": \"application/json\"\n }\n });\n this.logger = logger;\n }\n async execute({\n url,\n method,\n params,\n body,\n headers\n }) {\n let response = void 0;\n for (let retry = 0; retry < API.MAX_RETRY; retry++) {\n try {\n response = await this.apiClient.request({\n url,\n method,\n data: body,\n params,\n headers\n });\n } catch (error) {\n this.logger.log(\"error\", `API.execute error when request ${url}. Error: ${error}`);\n throw error;\n }\n }\n if (response) {\n return response.data;\n }\n throw new Error(\"API.execute error: Failed to retrieve a valid response\");\n }\n};\n\n// ../core/src/cookies.ts\nvar GLOBAL_KEY = \"__CREX_INITIAL_CONFIG__\";\nvar CONFIG_COOKIE_KEY = \"crex_config\";\nfunction isBrowser() {\n return typeof window !== \"undefined\" && typeof document !== \"undefined\";\n}\nfunction parseCookies() {\n const cookies = {};\n if (typeof document === \"undefined\") {\n return cookies;\n }\n document.cookie.split(\";\").forEach((cookie) => {\n const [key, value] = cookie.split(\"=\");\n if (key && value) {\n cookies[key.trim()] = decodeURIComponent(value.trim());\n }\n });\n return cookies;\n}\nfunction setCookie(name, value, days = 30) {\n if (typeof document === \"undefined\") return;\n const expires = new Date(Date.now() + days * 86400 * 1e3).toUTCString();\n document.cookie = `${name}=${encodeURIComponent(value)}; path=/; expires=${expires}; SameSite=Lax`;\n}\nfunction setConfig(config) {\n if (isBrowser()) {\n setCookie(CONFIG_COOKIE_KEY, JSON.stringify(config));\n } else {\n if (typeof global !== \"undefined\" && !(GLOBAL_KEY in global)) {\n global[GLOBAL_KEY] = null;\n }\n const globalConfig = global[GLOBAL_KEY];\n if (globalConfig === null) {\n global[GLOBAL_KEY] = config;\n }\n }\n}\nfunction getConfig() {\n let returnValue;\n if (isBrowser()) {\n const cookies = parseCookies();\n const configStr = cookies[CONFIG_COOKIE_KEY];\n if (configStr) {\n try {\n return JSON.parse(configStr);\n } catch {\n return null;\n }\n }\n return null;\n } else {\n returnValue = global[GLOBAL_KEY];\n }\n return returnValue;\n}\n\n// ../core/src/sdk.ts\nvar CrexSDK = class {\n constructor() {\n const config = getConfig();\n this.customerConfig = config;\n this.api = new CrexApi(this.customerConfig.baseUrl, null);\n }\n static setConfig(config) {\n setConfig(config);\n }\n};\n\n// ../utils/src/utils.ts\nvar createParams = (fieldsList, key = \"Fields\") => fieldsList.map((item) => ({\n key,\n value: item\n}));\nvar updateUrlWithParams = (router, params) => {\n const searchParams = new URLSearchParams(window.location.search);\n params.forEach((param) => {\n searchParams.set(param.key, param.value.toString());\n });\n const queryString = searchParams.toString();\n router.push(`${window.location.pathname}?${queryString}`);\n};\nvar generateQueryParams = (params) => {\n const queryParams = params.map(\n (param) => `${encodeURIComponent(param.key)}=${encodeURIComponent(param.value)}`\n ).join(\"&\");\n return queryParams;\n};\n\n// ../utils/src/classMerge.ts\nimport { clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\n// ../services/src/baseService.ts\nvar BaseService = class {\n constructor(endpoint) {\n this.SDK = new CrexSDK();\n this.api = this.SDK.api;\n this.endpoint = endpoint;\n }\n async request({\n path = \"\",\n method = \"get\",\n params = [],\n headers = {},\n transformer = (response) => response\n }) {\n try {\n let url = `${this.endpoint}${path}`;\n const queryParams = generateQueryParams(params);\n if (queryParams.length > 0) {\n url += `?${queryParams}`;\n }\n const response = await this.api.execute({\n url,\n method,\n headers\n });\n return await transformer(response);\n } catch (error) {\n console.log(\"error\", `BaseService.request error when request ${path}. Error: ${error}`);\n throw error;\n }\n }\n};\n\n// ../services/src/transforms/information.ts\nvar transformInformationUnits = (data) => {\n return {\n items: data.items.map((item) => item),\n pageInfo: data.pageInfo\n };\n};\n\n// ../services/src/informationUnits.ts\nvar InformationUnitsService = class extends BaseService {\n constructor() {\n super(\"InformationUnits/\");\n }\n async getList(queries, page, fields, language) {\n const remainFields = createParams(fields, \"Fields\");\n const params = [\n { key: \"pageSize\", value: \"8\" },\n { key: \"PageNumber\", value: (page - 1).toString() },\n { key: \"Query\", value: queries },\n ...remainFields\n ];\n if (language != null) {\n language.forEach((item) => {\n params.push({\n key: \"Restrict\",\n value: `languages~${item}`\n });\n });\n }\n return await this.request({\n params,\n transformer: transformInformationUnits\n });\n }\n async getItem(id) {\n const params = [\n { key: \"Fields\", value: \"renditions\" },\n { key: \"Fields\", value: \"directoryNodes\" }\n ];\n return await this.request({\n path: id,\n params\n });\n }\n async getLanguages() {\n return await this.request({\n path: `Languages`,\n transformer: (data) => {\n return data.map((item) => item.value);\n }\n });\n }\n async getSuggestions(query) {\n return await this.request({\n path: `Suggestions`,\n params: [{ key: \"prefix\", value: query }],\n transformer: (data) => {\n return data.suggestions.map((item) => item.value);\n }\n });\n }\n};\n\n// src/home/layout.tsx\nimport { SearchStateWrapper } from \"@c-rex/components/search-wrapper\";\n\n// src/home/page.tsx\nimport { useRouter } from \"next/navigation\";\nimport { Button } from \"@c-rex/ui/button\";\nimport { AutoComplete } from \"@c-rex/components/autocomplete\";\nimport { ResultList } from \"@c-rex/components/result-list\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar HomePage = ({ data }) => {\n const router = useRouter();\n const initialValue = null;\n const onSearch = (value) => {\n const service = new InformationUnitsService();\n return service.getSuggestions(value);\n };\n const onSelect = (value) => {\n updateUrlWithParams(router, [\n {\n key: \"search\",\n value: value.split(\" \").join(\",\")\n },\n {\n key: \"operator\",\n value: \"OR\"\n },\n {\n key: \"page\",\n value: \"1\"\n }\n ]);\n };\n return /* @__PURE__ */ jsxs(\"div\", { className: \"container\", children: [\n /* @__PURE__ */ jsxs(\"div\", { className: \"grid grid-cols-12 gap-4 py-6\", children: [\n /* @__PURE__ */ jsx(\"div\", { className: \"col-span-12 sm:col-span-9 md:col-span-10\", children: /* @__PURE__ */ jsx(\n AutoComplete,\n {\n initialValue: initialValue ?? \"\",\n onSearch,\n onSelect\n }\n ) }),\n /* @__PURE__ */ jsx(\"div\", { className: \"col-span-12 sm:col-span-3 md:col-span-2\", children: /* @__PURE__ */ jsx(\"div\", { className: \"flex justify-end\", children: /* @__PURE__ */ jsx(Button, { variant: \"default\", children: \"Filters\" }) }) })\n ] }),\n /* @__PURE__ */ jsx(ResultList, { items: data.items })\n ] });\n};\n\n// src/home/layout.tsx\nimport { jsx as jsx2 } from \"react/jsx-runtime\";\nvar loadData = async ({\n search,\n page,\n language\n}) => {\n const service = new InformationUnitsService();\n const pageAux = page != void 0 ? Number(page) : 0;\n const searchValue = search != void 0 ? search : \"\";\n const availableLanguages = await service.getLanguages();\n let data = { items: [] };\n let selectedLanguages = [];\n if (language != void 0) {\n const aux = language;\n selectedLanguages = aux.split(\",\");\n }\n if (searchValue) {\n data = await service.getList(\n searchValue,\n pageAux,\n selectedLanguages,\n []\n );\n }\n return {\n data,\n filters: {\n searchValue,\n page: pageAux,\n selectedLanguage: selectedLanguages,\n availableLanguages\n }\n };\n};\nvar HomeLayout = async ({ searchParams }) => {\n const { data, filters } = await loadData(searchParams);\n return /* @__PURE__ */ jsx2(SearchStateWrapper, { filters, children: /* @__PURE__ */ jsx2(HomePage, { data }) });\n};\nexport {\n HomeLayout\n};\n","import axios, { AxiosResponse, Method, AxiosInstance } from \"axios\";\nimport { API } from \"@c-rex/constants\";\n\ninterface APIGenericResponse<T> extends AxiosResponse {\n data: T;\n statusCode: number;\n}\n\ninterface CallParams {\n url: string;\n method: Method;\n body?: any;\n headers?: any;\n params?: any;\n}\n\nexport class CrexApi {\n private apiClient: AxiosInstance;\n private logger: any;\n\n public constructor(baseUrl: string, logger: any) {\n this.apiClient = axios.create({\n baseURL: baseUrl,\n headers: {\n \"content-Type\": \"application/json\",\n },\n });\n this.logger = logger;\n }\n\n async execute<T>({\n url,\n method,\n params,\n body,\n headers,\n }: CallParams): Promise<any> {\n let response: APIGenericResponse<T> | undefined = undefined;\n\n for (let retry = 0; retry < API.MAX_RETRY; retry++) {\n try {\n response = await this.apiClient.request({\n url,\n method,\n data: body,\n params,\n headers,\n });\n } catch (error) {\n this.logger.log(\"error\", `API.execute error when request ${url}. Error: ${error}`);\n throw error;\n }\n }\n\n if (response) {\n return response.data\n }\n\n throw new Error(\"API.execute error: Failed to retrieve a valid response\");\n }\n}\n","export const ALL = \"*\"\n\nexport const LOG_CATEGORIES = [\n \"NoLicense\",\n \"Scenario\",\n \"Favorites\",\n \"Subscription\",\n \"Share\",\n \"Document\",\n \"Search\",\n \"History\",\n \"Notification\",\n \"UserProfile\",\n] as const;\n\nexport const LOG_LEVELS = {\n critical: 2,\n error: 3,\n warning: 4,\n info: 6,\n debug: 7,\n} as const;\n\nexport const API = {\n MAX_RETRY: 3,\n API_TIMEOUT: 10000,\n API_HEADERS: {\n \"content-Type\": \"application/json\",\n },\n};","const GLOBAL_KEY = '__CREX_INITIAL_CONFIG__';\nconst CONFIG_COOKIE_KEY = 'crex_config';\n\nfunction isBrowser() {\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n\nfunction parseCookies(): Record<string, string> {\n const cookies: Record<string, string> = {};\n\n if (typeof document === 'undefined') {\n return cookies;\n }\n\n document.cookie.split(';').forEach(cookie => {\n const [key, value] = cookie.split('=');\n if (key && value) {\n cookies[key.trim()] = decodeURIComponent(value.trim());\n }\n });\n\n return cookies;\n}\n\nfunction setCookie(name: string, value: string, days = 30) {\n if (typeof document === 'undefined') return;\n\n const expires = new Date(Date.now() + days * 86400 * 1000).toUTCString();\n document.cookie = `${name}=${encodeURIComponent(value)}; path=/; expires=${expires}; SameSite=Lax`;\n}\n\nexport function setConfig(config: Record<string, any>) {\n\n if (isBrowser()) {\n setCookie(CONFIG_COOKIE_KEY, JSON.stringify(config));\n } else {\n if (typeof global !== 'undefined' && !(GLOBAL_KEY in global)) {\n (global as any)[GLOBAL_KEY] = null;\n }\n\n const globalConfig = (global as any)[GLOBAL_KEY] as any;\n\n if (globalConfig === null) {\n (global as any)[GLOBAL_KEY] = config;\n }\n }\n}\n\nexport function getConfig(): Record<string, any> | null {\n let returnValue\n\n if (isBrowser()) {\n const cookies = parseCookies();\n const configStr = cookies[CONFIG_COOKIE_KEY];\n if (configStr) {\n try {\n return JSON.parse(configStr);\n } catch {\n return null;\n }\n }\n return null;\n\n } else {\n returnValue = (global as any)[GLOBAL_KEY];\n }\n\n return returnValue\n}\n","import { CrexApi } from \"./requests\";\nimport { ConfigInterface } from \"@c-rex/interfaces\";\nimport { getConfig, setConfig } from \"./cookies\";\n\nexport class CrexSDK {\n public customerConfig!: ConfigInterface;\n public logger!: any;\n public api!: CrexApi;\n\n public constructor() {\n const config = getConfig();\n\n this.customerConfig = config as ConfigInterface;\n this.api = new CrexApi(this.customerConfig.baseUrl, null);\n }\n\n public static setConfig(config: ConfigInterface) {\n setConfig(config);\n }\n}","\nimport { QueryParams } from '@c-rex/types';\n//import * as Flags from 'country-flag-icons/react/3x2';\n//import { AppRouterInstance } from 'next/dist/shared/lib/app-router-context.shared-runtime';\n\nexport const createParams = (fieldsList: string[], key: string = \"Fields\") =>\n fieldsList.map((item) => ({\n key: key,\n value: item,\n }));\n\nexport const updateUrlWithParams = (\n //router: AppRouterInstance,\n router: any,\n params: QueryParams[],\n) => {\n const searchParams = new URLSearchParams(window.location.search);\n\n params.forEach((param) => {\n searchParams.set(param.key, param.value.toString());\n });\n\n const queryString = searchParams.toString();\n router.push(`${window.location.pathname}?${queryString}`);\n};\n\nexport const generateQueryParams = (params: QueryParams[]): string => {\n const queryParams = params\n .map(\n (param) =>\n `${encodeURIComponent(param.key)}=${encodeURIComponent(param.value)}`,\n )\n .join(\"&\");\n return queryParams;\n};\n\n/*\nexport const getFlagIcon = (countryCode: string): JSX.Element | null => {\n if (countryCode === undefined) return null;\n \n return Flags[countryCode] || null;\n};\n\n\n*/","import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","import { CrexSDK, CrexApi } from \"@c-rex/core\";\nimport { LogCategoriesType, LogLevelType, QueryParams } from \"@c-rex/types\";\nimport { generateQueryParams } from \"@c-rex/utils\";\nimport { Method } from \"axios\";\n\nexport class BaseService {\n protected api: CrexApi;\n //private log: (level: LogLevelType, message: string, category?: LogCategoriesType) => void;\n private endpoint: string;\n private SDK: CrexSDK;\n\n constructor(endpoint: string) {\n this.SDK = new CrexSDK();\n this.api = this.SDK.api;\n //this.log = this.SDK.logger.log;\n this.endpoint = endpoint;\n }\n\n protected async request<T>(\n {\n path = \"\",\n method = \"get\",\n params = [],\n headers = {},\n transformer = (response: any) => response,\n }: {\n path?: string,\n method?: Method,\n params?: QueryParams[],\n headers?: any,\n transformer?: (data: any) => T,\n }\n ): Promise<T> {\n try {\n let url = `${this.endpoint}${path}`;\n\n const queryParams = generateQueryParams(params);\n if (queryParams.length > 0) {\n url += `?${queryParams}`;\n }\n\n const response = await this.api.execute({\n url,\n method,\n headers,\n })\n\n return await transformer(response);\n\n } catch (error) {\n console.log(\"error\", `BaseService.request error when request ${path}. Error: ${error}`);\n\n throw error;\n }\n }\n}\n\n","import { DefaultRequest } from \"@c-rex/interfaces\";\nimport {\n informationUnits,\n informationUnitsItems,\n} from \"@c-rex/interfaces\";\n\nexport const transformInformationUnits = (\n data: DefaultRequest<informationUnitsItems>,\n): informationUnits => {\n return {\n items: data.items.map((item) => item),\n pageInfo: data.pageInfo,\n };\n};\n","import {\n AutocompleteSuggestion,\n informationUnits,\n informationUnitsItems,\n} from \"@c-rex/interfaces\";\nimport { transformInformationUnits } from \"./transforms/information\";\nimport { createParams } from \"@c-rex/utils\";\nimport { BaseService } from \"./baseService\";\n\nexport class InformationUnitsService extends BaseService {\n constructor() {\n super(\"InformationUnits/\");\n }\n\n public async getList(\n queries: string,\n page: number,\n fields: string[],\n language: string[] | null,\n ): Promise<informationUnits> {\n const remainFields = createParams(fields, \"Fields\");\n\n const params = [\n { key: \"pageSize\", value: \"8\" },\n { key: \"PageNumber\", value: (page - 1).toString() },\n { key: \"Query\", value: queries },\n ...remainFields,\n ];\n\n if (language != null) {\n language.forEach((item) => {\n params.push({\n key: \"Restrict\",\n value: `languages~${item}`,\n });\n });\n }\n\n return await this.request({\n params: params,\n transformer: transformInformationUnits\n });\n }\n\n public async getItem(id: string): Promise<informationUnitsItems> {\n const params = [\n { key: \"Fields\", value: \"renditions\" },\n { key: \"Fields\", value: \"directoryNodes\" },\n ];\n\n return await this.request({\n path: id,\n params,\n });\n }\n\n public async getLanguages(): Promise<string[]> {\n return await this.request({\n path: `Languages`,\n transformer: (data: { value: string; score: number }[]) => {\n return data.map((item) => item.value);\n },\n });\n }\n\n public async getSuggestions(query: string): Promise<string[]> {\n return await this.request({\n path: `Suggestions`,\n params: [{ key: \"prefix\", value: query }],\n transformer: (data: AutocompleteSuggestion) => {\n return data.suggestions.map((item) => item.value);\n },\n });\n }\n}\n","import { informationUnits } from \"@c-rex/interfaces\";\nimport { InformationUnitsService } from \"@c-rex/services\";\nimport { SearchStateWrapper } from \"@c-rex/components/search-wrapper\";\nimport { HomePage } from \"./page\";\n\ninterface SearchParams {\n search?: string;\n page?: string;\n language?: string;\n}\ninterface HomeProps {\n searchParams: SearchParams;\n}\n\nconst loadData = async ({\n search,\n page,\n language,\n}: SearchParams): Promise<any> => {\n const service = new InformationUnitsService();\n const pageAux = page != undefined ? Number(page) : 0;\n const searchValue = search != undefined ? (search as string) : \"\";\n const availableLanguages = await service.getLanguages();\n\n let data = { items: [] } as unknown as informationUnits;\n let selectedLanguages: string[] = [];\n\n if (language != undefined) {\n const aux = language as string;\n selectedLanguages = aux.split(\",\");\n }\n\n if (searchValue) {\n data = await service.getList(\n searchValue,\n pageAux,\n selectedLanguages,\n [],\n );\n }\n\n return {\n data: data,\n filters: {\n searchValue: searchValue,\n page: pageAux,\n selectedLanguage: selectedLanguages,\n availableLanguages: availableLanguages,\n },\n };\n};\n\nexport const HomeLayout = async ({ searchParams }: HomeProps) => {\n const { data, filters } = await loadData(searchParams);\n\n return (\n <SearchStateWrapper filters={filters}>\n <HomePage data={data} />\n </SearchStateWrapper>\n );\n};\n","\"use client\";\n\nimport { FC } from \"react\";\nimport { informationUnits } from \"@c-rex/interfaces\";\nimport { InformationUnitsService } from \"@c-rex/services\";\nimport { updateUrlWithParams } from \"@c-rex/utils\";\nimport { useRouter } from \"next/navigation\";\nimport { Button } from \"@c-rex/ui/button\";\nimport { AutoComplete } from \"@c-rex/components/autocomplete\";\nimport { ResultList } from \"@c-rex/components/result-list\";\n\n//import { useSearchContext } from '@/contexts/search'; TODO: replace for a lib how manage states from URL\n\ninterface HomePageProps {\n data: informationUnits;\n}\n\nexport const HomePage: FC<HomePageProps> = ({ data }) => {\n const router = useRouter();\n const initialValue = null;\n\n const onSearch = (value: string): Promise<string[]> => {\n const service = new InformationUnitsService();\n return service.getSuggestions(value);\n\n }\n\n const onSelect = (value: string) => {\n updateUrlWithParams(router, [\n {\n key: \"search\",\n value: value.split(\" \").join(\",\"),\n },\n {\n key: \"operator\",\n value: \"OR\",\n },\n {\n key: \"page\",\n value: \"1\",\n },\n ]);\n };\n\n return (\n <div className=\"container\">\n <div className=\"grid grid-cols-12 gap-4 py-6\">\n <div className=\"col-span-12 sm:col-span-9 md:col-span-10\">\n <AutoComplete\n initialValue={initialValue ?? \"\"}\n onSearch={onSearch}\n onSelect={onSelect}\n />\n </div>\n <div className=\"col-span-12 sm:col-span-3 md:col-span-2\">\n <div className=\"flex justify-end\">\n <Button variant=\"default\">Filters</Button>\n </div>\n </div>\n </div>\n\n <ResultList items={data.items} />\n </div>\n );\n};"]}
|