common fields

This commit is contained in:
2026-06-05 02:53:26 +05:30
parent e6ce62a166
commit a54250b53d
16 changed files with 349 additions and 211 deletions

View File

@@ -4,7 +4,10 @@ import { ResourceConfig } from "../types/config";
import { ConfigContext } from "../providers/ConfigContext";
import * as React from "react";
export function useResource<T = any>(config: ResourceConfig | undefined) {
import { FieldComponents } from "../types/overrides";
import { defaultFieldComponents } from "../components/fields/DefaultFieldComponents";
export function useResource<T = any>(config: ResourceConfig | undefined, options?: { fieldComponents?: FieldComponents }) {
const queryClient = useQueryClient();
// Return empty/disabled hooks if config is missing
@@ -147,6 +150,11 @@ export function useResource<T = any>(config: ResourceConfig | undefined) {
},
});
const components = {
...defaultFieldComponents,
...options?.fieldComponents,
};
return {
useList,
useRead,
@@ -157,12 +165,13 @@ export function useResource<T = any>(config: ResourceConfig | undefined) {
useUpdateMe,
useDelete,
getListQueryOptions,
components,
};
}
export function useResourceByName<T = any>(name: string) {
export function useResourceByName<T = any>(name: string, options?: { fieldComponents?: FieldComponents }) {
const config = React.useContext(ConfigContext);
const resourceConfig = config?.resources.find((r) => r.name === name);
return useResource<T>(resourceConfig);
return useResource<T>(resourceConfig, options);
}