Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 18 additions & 29 deletions pdl-live-react/src/view/detail/DrawerContentBody.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,6 @@ import {
type NonScalarPdlBlock as Model,
} from "../../helpers"

function defBody(_def: string | null, block: Model) {
const value = hasResult(block) ? block.pdl__result : undefined
return (
<Tab eventKey={0} title={<TabTitleText>Value</TabTitleText>}>
{!value ? "Value not found" : <DefContent value={value} />}
</Tab>
)
}

function blockBody(block: Model) {
const tabs = [
<Tab key={0} eventKey={0} title={<TabTitleText>Summary</TabTitleText>}>
Expand All @@ -35,7 +26,7 @@ function blockBody(block: Model) {
<SourceTabContent block={block} />
</Suspense>
</Tab>,
<Tab key={2} eventKey={2} title={<TabTitleText>Raw Trace</TabTitleText>}>
<Tab key={2} eventKey={2} title={<TabTitleText>Trace</TabTitleText>}>
<Suspense>
<RawTraceTabContent block={block} />
</Suspense>
Expand All @@ -46,7 +37,7 @@ function blockBody(block: Model) {
tabs.splice(
1,
0,
<Tab key={3} eventKey={3} title={<TabTitleText>Context</TabTitleText>}>
<Tab key={3} eventKey={3} title={<TabTitleText>Messages</TabTitleText>}>
<Suspense>
<ContextTabContent block={block} />
</Suspense>
Expand All @@ -68,29 +59,27 @@ type Props = {
export default function DrawerContentBody({
id,
value,
def,
objectType,
model,
}: Props) {
if (!model) {
return (
<Suspense fallback={<div />}>
<BlockNotFound pdl__id={id} value={value} />
</Suspense>
)
}

switch (objectType) {
case "def":
if (!model) {
return (
<Suspense>
<BlockNotFound pdl__id={id} value={value} />
</Suspense>
)
}
return defBody(def, model)
case "def": {
const value = hasResult(model) ? model.pdl__result : undefined
return (
<Tab eventKey={0} title={<TabTitleText>Value</TabTitleText>}>
{!value ? "Value not found" : <DefContent value={value} />}
</Tab>
)
}
default:
if (!model) {
return (
<Suspense>
<BlockNotFound pdl__id={id} value={value} />
</Suspense>
)
}

return blockBody(model)
}
}