react-icons/md#MdSpaceDashboard TypeScript Examples
The following examples show how to use
react-icons/md#MdSpaceDashboard.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: index.tsx From slice-machine with Apache License 2.0 | 6 votes |
links: LinkProps[] = [
{
title: "Custom Types",
href: "/",
match(pathname: string) {
return pathname === "/" || pathname.indexOf("/cts") === 0;
},
Icon: MdSpaceDashboard,
},
{
title: "Slices",
href: "/slices",
match(pathname: string) {
return pathname.indexOf("/slices") === 0;
},
Icon: MdHorizontalSplit,
},
]
Example #2
Source File: index.tsx From slice-machine with Apache License 2.0 | 5 votes |
CustomTypes: React.FunctionComponent = () => {
const { openCreateCustomTypeModal } = useSliceMachineActions();
const { customTypes, isCreatingCustomType, customTypeCount } = useSelector(
(store: SliceMachineStoreType) => ({
customTypes: selectAllCustomTypes(store),
customTypeCount: selectCustomTypeCount(store),
isCreatingCustomType: isLoading(
store,
LoadingKeysEnum.CREATE_CUSTOM_TYPE
),
})
);
return (
<Container sx={{ flex: 1, display: "flex", flexDirection: "column" }}>
<Header
ActionButton={
customTypeCount > 0 ? (
<Button
data-cy="create-ct"
onClick={openCreateCustomTypeModal}
sx={{
minWidth: "171px",
}}
>
{isCreatingCustomType ? (
<Spinner color="#FFF" size={14} />
) : (
"Create a Custom Type"
)}
</Button>
) : undefined
}
MainBreadcrumb={
<Fragment>
<MdSpaceDashboard /> <Text ml={2}>Custom Types</Text>
</Fragment>
}
breadrumbHref="/"
/>
{customTypeCount === 0 ? (
<Flex
sx={{
flex: 1,
justifyContent: "center",
alignItems: "center",
}}
>
<EmptyState
title={"What are Custom Types?"}
onCreateNew={openCreateCustomTypeModal}
isLoading={isCreatingCustomType}
buttonText={"Create one"}
documentationComponent={
<>
Custom Types are models for your documents. They are the place
where you define and configure Fields and Slices for your
content. They will be stored locally, and you will be able to
push them to your repository.{" "}
<ThemeLink
target={"_blank"}
href={"https://prismic.io/docs/core-concepts/custom-types "}
sx={(theme) => ({ color: theme?.colors?.primary })}
>
Learn more
</ThemeLink>
.
</>
}
/>
</Flex>
) : (
<CustomTypeTable customTypes={customTypes} />
)}
<CreateCustomTypeModal />
</Container>
);
}
Example #3
Source File: Header.tsx From slice-machine with Apache License 2.0 | 4 votes |
CustomTypeHeader = () => {
const {
currentCustomType,
hasPendingModifications,
customTypeStatus,
isPushingCustomType,
isSavingCustomType,
} = useSelector((store: SliceMachineStoreType) => ({
currentCustomType: selectCurrentCustomType(store),
hasPendingModifications:
selectIsCurrentCustomTypeHasPendingModifications(store),
customTypeStatus: selectCustomTypeStatus(store),
isPushingCustomType: isLoading(store, LoadingKeysEnum.PUSH_CUSTOM_TYPE),
isSavingCustomType: isLoading(store, LoadingKeysEnum.SAVE_CUSTOM_TYPE),
}));
const { saveCustomType, pushCustomType } = useSliceMachineActions();
if (!currentCustomType) return null;
const buttonProps = (() => {
if (hasPendingModifications) {
return {
onClick: () => {
saveCustomType();
},
children: (
<span>
{isSavingCustomType ? (
<Spinner
color="#F7F7F7"
size={20}
mr={2}
sx={{ position: "relative", top: "5px", left: "3px" }}
/>
) : null}
Save to File System
</span>
),
};
}
if (
[CustomTypeStatus.New, CustomTypeStatus.Modified].includes(
customTypeStatus
)
) {
return {
onClick: () => {
if (!isPushingCustomType) {
pushCustomType();
}
},
children: (
<span>
{isPushingCustomType ? (
<Spinner
color="#F7F7F7"
size={20}
mr={2}
sx={{ position: "relative", top: "5px", left: "3px" }}
/>
) : null}
Push to Prismic
</span>
),
};
}
return { variant: "disabled", children: "Synced with Prismic" };
})();
return (
<Header
MainBreadcrumb={
<>
<MdSpaceDashboard /> <Text ml={2}>Custom Types</Text>
</>
}
SecondaryBreadcrumb={
<Box sx={{ fontWeight: "thin" }} as="span">
<Text ml={2}>/ {currentCustomType.label} </Text>
</Box>
}
breadrumbHref="/"
ActionButton={<Button {...buttonProps} />}
/>
);
}