Mixing Remote and Local Data Models
Step 1: Remote Data Model
// In `src/datamodels.tsx`:
const { fetchRemoteDataModels } = useGenerateRemoteDataModelsTRPCClient(/* ... */);
<AdminContextProvider>
<DataModels fetchRemoteDataModels={fetchRemoteDataModels}>
<RemoteDataModels />
{children}
</DataModels>
</AdminContextProvider>Step 2: Remote Data Model, but with the ability to customize DataModel props
DataModel props// In `src/datamodels.tsx`:
const { getPropsForRemoteDataModel } = useGenerateRemoteDataModelsTRPCClient(/* ... */);
<AdminContextProvider>
<DataModels fetchRemoteDataModels={fetchRemoteDataModels}>
{/* 1. Remove the "vehicle" remote data model from the auto generated list */}
<RemoteDataModels exclude={["Vehicle"]} />
{/* 2. Manually generate the data model */}
<DataModel<Vehicle>
name="Vehicle" // NOTE that this must be the same as the name the remote data model had!
singularDisplayName="Vehicle"
pluralDisplayName="Vehicles"
{/* 3. Auto generated the props that do the data fetching - include create/update/delete */}
{...getPropsForRemoteDataModel('Vehicle', ['createItem', 'updateItem', 'deleteItem'])}
keyGenerator={vehicle => vehicle.id}
detailLinkGenerator={vehicle => ({ type: 'href' as const, href: `/admin/vehicles/${vehicle.id}` })}
listLink={{ type: 'href' as const, href: `/admin/vehicles` }}
createLink={{ type: 'href', href: `/admin/vehicles/new` }}
>
{/* 4. Use all the existing remote field definitions */}
<RemoteFields name="Vehicle" />
</DataModel>
{children}
</DataModels>
</AdminContextProvider>Step 3: Remote Data Model, but with custom DataModel supporting overridden custom fields
DataModel supporting overridden custom fieldsStep 4: Remote Data Model, but with fully custom DataModel fields:
DataModel fields:Step 5: Local Data Model
Last updated