* feat: add Object Edit Settings section with Object preview Closes #3834 * fix: fix preview card stories * test: improve getFieldDefaultPreviewValue tests * test: add getFieldPreviewValueFromRecord tests * test: add useFieldPreview tests * refactor: rename and move components * fix: restore RecordStoreDecorator
42 lines
1.1 KiB
TypeScript
42 lines
1.1 KiB
TypeScript
import { ReactNode } from 'react';
|
|
import styled from '@emotion/styled';
|
|
|
|
import { Card } from '@/ui/layout/card/components/Card';
|
|
import { CardContent } from '@/ui/layout/card/components/CardContent';
|
|
|
|
type SettingsDataModelPreviewFormCardProps = {
|
|
className?: string;
|
|
preview: ReactNode;
|
|
form?: ReactNode;
|
|
};
|
|
|
|
const StyledPreviewContainer = styled(CardContent)`
|
|
background-color: ${({ theme }) => theme.background.transparent.lighter};
|
|
`;
|
|
|
|
const StyledTitle = styled.h3`
|
|
color: ${({ theme }) => theme.font.color.extraLight};
|
|
font-size: ${({ theme }) => theme.font.size.sm};
|
|
font-weight: ${({ theme }) => theme.font.weight.medium};
|
|
margin: 0;
|
|
margin-bottom: ${({ theme }) => theme.spacing(4)};
|
|
`;
|
|
|
|
const StyledFormContainer = styled(CardContent)`
|
|
padding: 0;
|
|
`;
|
|
|
|
export const SettingsDataModelPreviewFormCard = ({
|
|
className,
|
|
preview,
|
|
form,
|
|
}: SettingsDataModelPreviewFormCardProps) => (
|
|
<Card className={className} fullWidth>
|
|
<StyledPreviewContainer divider={!!form}>
|
|
<StyledTitle>Preview</StyledTitle>
|
|
{preview}
|
|
</StyledPreviewContainer>
|
|
{!!form && <StyledFormContainer>{form}</StyledFormContainer>}
|
|
</Card>
|
|
);
|