Skip to content

Commit b007f35

Browse files
committed
Create shared RenderRecordFunction type
1 parent 97efb08 commit b007f35

File tree

4 files changed

+11
-12
lines changed

4 files changed

+11
-12
lines changed

examples/demo/src/orders/NbItemsField.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import * as React from 'react';
2-
import { FunctionField, FunctionFieldRenderer } from 'react-admin';
2+
import { FunctionField, RenderRecordFunction } from 'react-admin';
33
import { Order } from '../types';
44

5-
const render: FunctionFieldRenderer<Order> = record => record.basket.length;
5+
const render: RenderRecordFunction<Order> = record => record.basket.length;
66

77
const NbItemsField = () => <FunctionField<Order> render={render} />;
88

packages/ra-core/src/controller/record/WithRecord.tsx

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
import { ReactElement } from 'react';
2-
import { RaRecord } from '../../types';
1+
import { RenderRecordFunction } from '../../types';
32
import { useRecordContext } from './useRecordContext';
43

54
/**
@@ -24,6 +23,6 @@ export const WithRecord = <RecordType extends Record<string, unknown> = any>({
2423
export interface WithRecordProps<
2524
RecordType extends Record<string, unknown> = any
2625
> {
27-
render: (record: RecordType) => ReactElement;
26+
render: RenderRecordFunction<RecordType>;
2827
label?: string;
2928
}

packages/ra-core/src/types.ts

+5-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { ReactNode, ReactElement, ComponentType } from 'react';
1+
import { ComponentType, ReactElement, ReactNode } from 'react';
22
import { WithPermissionsChildrenParams } from './auth/WithPermissions';
33
import { AuthActionType } from './auth/types';
44

@@ -361,6 +361,10 @@ export interface ResourceProps {
361361
children?: ReactNode;
362362
}
363363

364+
export type RenderRecordFunction<
365+
RecordType extends Record<string, unknown> = any
366+
> = (record: RecordType, source?: string) => ReactNode;
367+
364368
export type Exporter = (
365369
data: any,
366370
fetchRelatedRecords: (

packages/ra-ui-materialui/src/field/FunctionField.tsx

+2-6
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import Typography, { TypographyProps } from '@mui/material/Typography';
22
import PropTypes from 'prop-types';
3-
import { useRecordContext } from 'ra-core';
3+
import { RenderRecordFunction, useRecordContext } from 'ra-core';
44
import * as React from 'react';
55
import { useMemo } from 'react';
66

@@ -46,13 +46,9 @@ FunctionField.propTypes = {
4646
render: PropTypes.func.isRequired,
4747
};
4848

49-
export type FunctionFieldRenderer<
50-
RecordType extends Record<string, unknown> = any
51-
> = (record: RecordType, source?: string) => React.ReactNode;
52-
5349
export interface FunctionFieldProps<
5450
RecordType extends Record<string, unknown> = any
5551
> extends FieldProps<RecordType>,
5652
Omit<TypographyProps, 'textAlign'> {
57-
render: FunctionFieldRenderer<RecordType>;
53+
render: RenderRecordFunction<RecordType>;
5854
}

0 commit comments

Comments
 (0)