diff --git a/src/lib/NavigationView.tsx b/src/lib/NavigationView.tsx
index 1bca95433..874857a05 100644
--- a/src/lib/NavigationView.tsx
+++ b/src/lib/NavigationView.tsx
@@ -4,7 +4,7 @@ import { useNavigation, type View } from 'lib/NavigationProvider.js'
import AccessCodeDetails from 'lib/ui/AccessCodeDetails/AccessCodeDetails.js'
interface NavigationViewProps {
- children: JSX.Element
+ children: React.ReactNode
}
export function NavigationView({ children: rootView }: NavigationViewProps) {
@@ -19,14 +19,18 @@ export function NavigationView({ children: rootView }: NavigationViewProps) {
}
function Subview({ view }: { view: View }) {
+ const { goBack } = useNavigation()
+
switch (view.name) {
case 'device_detail':
- return
+ return
case 'access_code_detail':
- return
+ return (
+
+ )
case 'device_table':
- return
+ return
case 'access_code_table':
- return
+ return
}
}
diff --git a/src/lib/SeamProvider.tsx b/src/lib/SeamProvider.tsx
index 47f71387c..438d9184a 100644
--- a/src/lib/SeamProvider.tsx
+++ b/src/lib/SeamProvider.tsx
@@ -9,6 +9,9 @@ import {
} from 'react'
import type { Seam, SeamClientOptions } from 'seamapi'
+import NavigationProvider from 'lib/NavigationProvider.js'
+import { NavigationView } from 'lib/NavigationView.js'
+
declare global {
// eslint-disable-next-line no-var
var seam: SeamProviderProps | undefined
@@ -68,7 +71,11 @@ export function SeamProvider({
return (
- {children}
+
+
+ {children}
+
+
)
diff --git a/src/lib/ui/AccessCodeDetails/AccessCodeDetails.tsx b/src/lib/ui/AccessCodeDetails/AccessCodeDetails.tsx
index aa7449e47..3465e2a02 100644
--- a/src/lib/ui/AccessCodeDetails/AccessCodeDetails.tsx
+++ b/src/lib/ui/AccessCodeDetails/AccessCodeDetails.tsx
@@ -8,10 +8,12 @@ import { ContentHeader } from 'lib/ui/layout/ContentHeader.js'
export interface AccessCodeDetailsProps {
accessCodeId: string
+ onBack?: () => void
}
export default function AccessCodeDetails({
accessCodeId,
+ onBack,
}: AccessCodeDetailsProps) {
const { isLoading, data: accessCode } = useFakeAccessCode({
access_code_id: accessCodeId,
@@ -25,7 +27,7 @@ export default function AccessCodeDetails({
return (
-
+
{t.accessCode}
diff --git a/src/lib/ui/AccessCodeTable/AccessCodeTable.tsx b/src/lib/ui/AccessCodeTable/AccessCodeTable.tsx
index c140469f1..5c42d35b8 100644
--- a/src/lib/ui/AccessCodeTable/AccessCodeTable.tsx
+++ b/src/lib/ui/AccessCodeTable/AccessCodeTable.tsx
@@ -11,9 +11,17 @@ import { TableTitle } from 'lib/ui/Table/TableTitle.js'
import { Caption } from 'lib/ui/typography/Caption.js'
import { Title } from 'lib/ui/typography/Title.js'
-export function AccessCodeTable(props: { deviceId: string }): JSX.Element {
+interface AccessCodeTableProps {
+ deviceId: string
+ onBack?: () => void
+}
+
+export function AccessCodeTable({
+ deviceId,
+ onBack,
+}: AccessCodeTableProps): JSX.Element {
const { accessCodes } = useAccessCodes({
- device_id: props.deviceId,
+ device_id: deviceId,
})
const { show } = useNavigation()
@@ -22,7 +30,7 @@ export function AccessCodeTable(props: { deviceId: string }): JSX.Element {
return (
-
+
{t.accessCodes} ({accessCodes.length})
diff --git a/src/lib/ui/DeviceDetails/DeviceDetails.tsx b/src/lib/ui/DeviceDetails/DeviceDetails.tsx
index b885c65f4..5c5c5ec92 100644
--- a/src/lib/ui/DeviceDetails/DeviceDetails.tsx
+++ b/src/lib/ui/DeviceDetails/DeviceDetails.tsx
@@ -12,10 +12,11 @@ import { ContentHeader } from 'lib/ui/layout/ContentHeader.js'
export interface DeviceDetailsProps {
deviceId: string
+ onBack?: () => void
}
export function DeviceDetails(props: DeviceDetailsProps): JSX.Element | null {
- const { deviceId } = props
+ const { deviceId, onBack } = props
const { isLoading: isLoadingDevice, device } = useFakeDevice({
device_id: deviceId,
@@ -46,7 +47,7 @@ export function DeviceDetails(props: DeviceDetailsProps): JSX.Element | null {
return (
-
+
diff --git a/src/lib/ui/DeviceTable/DeviceTable.stories.tsx b/src/lib/ui/DeviceTable/DeviceTable.stories.tsx
index 8aecf12da..c1eea1407 100644
--- a/src/lib/ui/DeviceTable/DeviceTable.stories.tsx
+++ b/src/lib/ui/DeviceTable/DeviceTable.stories.tsx
@@ -1,8 +1,6 @@
import { Button, Dialog, DialogActions } from '@mui/material'
import type { Meta, StoryObj } from '@storybook/react'
-import NavigationProvider from 'lib/NavigationProvider.js'
-import { NavigationView } from 'lib/NavigationView.js'
import {
DeviceTable,
type DeviceTableProps,
@@ -65,11 +63,7 @@ function WithNavigationComponent(props: DeviceTableProps) {