summaryrefslogtreecommitdiff
path: root/opendc-web/opendc-web-ui/src/components/context/ProjectSelector.js
diff options
context:
space:
mode:
authorFabian Mastenbroek <mail.fabianm@gmail.com>2022-09-20 22:10:01 +0200
committerGitHub <noreply@github.com>2022-09-20 22:10:01 +0200
commitf7ba5cd9bbf1f4d145c3d3d171c2632d44b5f94a (patch)
tree855256f27ded3cf0ec662119dbf26c3b138a8f5b /opendc-web/opendc-web-ui/src/components/context/ProjectSelector.js
parent48d43a83f675db8f5f13755081e56b3cde1a7207 (diff)
parent86bc9e74630374853d11bc1c8f7ba5ffafbaa868 (diff)
merge: Improve web interface (#100)
This pull request addresses several issues with the current web interface. ## Implementation Notes :hammer_and_pick: * Update dependencies of web UI where possible * Fix deletion of topology * Fix duplication of topology * Only display selected metrics * Use correct color for login button * Fix z-index of context selector * Move project selector into masthead * Reduce height of application header * Redesign projects page * Use PatternFly Charts for plots * Do not fail on stale Redux state * Fix overflow of topology sidebar * Fix deletion of portfolios * Migrate to composable table ## External Dependencies :four_leaf_clover: * `classnames` has been replaced by `clsx` * PatternFly Charts have replaced the use of `recharts`
Diffstat (limited to 'opendc-web/opendc-web-ui/src/components/context/ProjectSelector.js')
-rw-r--r--opendc-web/opendc-web-ui/src/components/context/ProjectSelector.js12
1 files changed, 8 insertions, 4 deletions
diff --git a/opendc-web/opendc-web-ui/src/components/context/ProjectSelector.js b/opendc-web/opendc-web-ui/src/components/context/ProjectSelector.js
index 7721e04c..f2791b38 100644
--- a/opendc-web/opendc-web-ui/src/components/context/ProjectSelector.js
+++ b/opendc-web/opendc-web-ui/src/components/context/ProjectSelector.js
@@ -22,24 +22,28 @@
import { useRouter } from 'next/router'
import { useState } from 'react'
-import { useProjects } from '../../data/project'
+import { useProjects, useProject } from '../../data/project'
import { Project } from '../../shapes'
import ContextSelector from './ContextSelector'
-function ProjectSelector({ activeProject }) {
+function ProjectSelector() {
const router = useRouter()
+ const projectId = +router.query['project']
const [isOpen, setOpen] = useState(false)
+ const { data: activeProject } = useProject(+projectId)
const { data: projects = [] } = useProjects({ enabled: isOpen })
return (
<ContextSelector
- label="Project"
- activeItem={activeProject}
+ id="project"
+ type="app"
+ toggleText={activeProject ? activeProject.name : 'Select project'}
items={projects}
onSelect={(project) => router.push(`/projects/${project.id}`)}
onToggle={setOpen}
isOpen={isOpen}
+ isFullHeight
/>
)
}