Handle unnamed reference floor levels

This commit is contained in:
sudhir
2026-04-30 19:19:57 +05:30
parent 25927dea3b
commit bbc638af22
@@ -83,6 +83,10 @@ function useLowerReferenceLevels(): LevelNode[] {
) )
} }
function getLevelDisplayName(level: LevelNode) {
return level.name || `Level ${level.level}`
}
// ── Shared upload button for dropdowns ────────────────────────────────────── // ── Shared upload button for dropdowns ──────────────────────────────────────
function UploadButton({ onError }: { onError: (message: string | null) => void }) { function UploadButton({ onError }: { onError: (message: string | null) => void }) {
@@ -612,6 +616,7 @@ function ReferenceFloorControl() {
const lowerLevels = useLowerReferenceLevels() const lowerLevels = useLowerReferenceLevels()
const hasLowerLevels = lowerLevels.length > 0 const hasLowerLevels = lowerLevels.length > 0
const selectedLevel = lowerLevels[referenceFloorOffset - 1] ?? lowerLevels[0] ?? null const selectedLevel = lowerLevels[referenceFloorOffset - 1] ?? lowerLevels[0] ?? null
const selectedLevelName = selectedLevel ? getLevelDisplayName(selectedLevel) : null
return ( return (
<Popover onOpenChange={setIsOpen} open={isOpen}> <Popover onOpenChange={setIsOpen} open={isOpen}>
@@ -625,8 +630,8 @@ function ReferenceFloorControl() {
)} )}
disabled={!hasLowerLevels} disabled={!hasLowerLevels}
label={ label={
selectedLevel && showReferenceFloor selectedLevelName && showReferenceFloor
? `Reference floor: ${selectedLevel.name}` ? `Reference floor: ${selectedLevelName}`
: 'Reference floor' : 'Reference floor'
} }
onClick={() => { onClick={() => {
@@ -678,8 +683,8 @@ function ReferenceFloorControl() {
</span> </span>
<div className="min-w-0 flex-1"> <div className="min-w-0 flex-1">
<p className="font-medium text-foreground text-sm">Reference floor</p> <p className="font-medium text-foreground text-sm">Reference floor</p>
{selectedLevel && ( {selectedLevelName && (
<p className="truncate text-muted-foreground text-xs">{selectedLevel.name}</p> <p className="truncate text-muted-foreground text-xs">{selectedLevelName}</p>
)} )}
</div> </div>
<button <button
@@ -698,6 +703,7 @@ function ReferenceFloorControl() {
<div className="max-h-44 space-y-1 overflow-y-auto rounded-xl border border-border/45 bg-background/60 p-1.5"> <div className="max-h-44 space-y-1 overflow-y-auto rounded-xl border border-border/45 bg-background/60 p-1.5">
{lowerLevels.map((level, index) => { {lowerLevels.map((level, index) => {
const isSelected = referenceFloorOffset === index + 1 const isSelected = referenceFloorOffset === index + 1
const levelName = getLevelDisplayName(level)
return ( return (
<button <button
className={cn( className={cn(
@@ -721,7 +727,7 @@ function ReferenceFloorControl() {
: 'border-muted-foreground/35', : 'border-muted-foreground/35',
)} )}
/> />
<span className="min-w-0 flex-1 truncate">{level.name}</span> <span className="min-w-0 flex-1 truncate">{levelName}</span>
<span className="text-[10px] text-muted-foreground"> <span className="text-[10px] text-muted-foreground">
{index + 1} below {index + 1} below
</span> </span>