From 10b8e973ef001af1ebd93b6565d9ad59db20a0e8 Mon Sep 17 00:00:00 2001 From: Camila Belo Date: Wed, 4 May 2022 17:00:54 +0200 Subject: [PATCH] feat(techdocs): add settings menu list Signed-off-by: Camila Belo --- .../TechDocsReaderPageSubheader.tsx | 71 +++++++++++++++---- 1 file changed, 58 insertions(+), 13 deletions(-) diff --git a/plugins/techdocs/src/reader/components/TechDocsReaderPageSubheader/TechDocsReaderPageSubheader.tsx b/plugins/techdocs/src/reader/components/TechDocsReaderPageSubheader/TechDocsReaderPageSubheader.tsx index e0eb0ad2b0..a0013e81ab 100644 --- a/plugins/techdocs/src/reader/components/TechDocsReaderPageSubheader/TechDocsReaderPageSubheader.tsx +++ b/plugins/techdocs/src/reader/components/TechDocsReaderPageSubheader/TechDocsReaderPageSubheader.tsx @@ -14,9 +14,18 @@ * limitations under the License. */ -import React from 'react'; +import React, { MouseEvent, useState, useCallback } from 'react'; -import { Box, makeStyles, Toolbar, ToolbarProps } from '@material-ui/core'; +import { + Box, + makeStyles, + Toolbar, + ToolbarProps, + Menu, + Tooltip, + IconButton, +} from '@material-ui/core'; +import SettingsIcon from '@material-ui/icons/Settings'; import { TechDocsAddonLocations as locations, @@ -44,31 +53,67 @@ export const TechDocsReaderPageSubheader = ({ toolbarProps?: ToolbarProps; }) => { const classes = useStyles(); + const [anchorEl, setAnchorEl] = useState(null); + + const handleClick = useCallback((event: MouseEvent) => { + setAnchorEl(event.currentTarget); + }, []); + + const handleClose = useCallback(() => { + setAnchorEl(null); + }, []); + const { entityMetadata: { value: entityMetadata, loading: entityMetadataLoading }, } = useTechDocsReaderPage(); + const addons = useTechDocsAddons(); + const subheaderAddons = addons.renderComponentsByLocation( locations.Subheader, ); - if (!subheaderAddons) return null; + const settingsAddons = addons.renderComponentsByLocation(locations.Settings); + + if (!subheaderAddons && !settingsAddons) return null; // No entity metadata = 404. Don't render subheader on 404. if (entityMetadataLoading === false && !entityMetadata) return null; return ( - {subheaderAddons && ( - - {subheaderAddons} - - )} + + {subheaderAddons} + {settingsAddons ? ( + <> + + + + + + + {settingsAddons} + + + ) : null} + ); };