refactor: move placeholder comp to comp registry

So we can have placeholder pages between impl'd pages
This commit is contained in:
2 * r + 2 * t 2026-06-07 17:15:05 +10:00
parent 8d709be51a
commit 0d3b9370ca
2 changed files with 39 additions and 39 deletions

View file

@ -1,6 +1,10 @@
pragma Singleton pragma Singleton
import QtQuick import QtQuick
import QtQuick.Layouts
import Caelestia.Config
import qs.components
import qs.services
import qs.modules.nexus.common import qs.modules.nexus.common
import qs.modules.nexus.pages import qs.modules.nexus.pages
import qs.modules.nexus.pages.audio import qs.modules.nexus.pages.audio
@ -65,4 +69,38 @@ QtObject {
} }
} }
] ]
readonly property Component placeholderComp: Component {
PlaceholderComp {}
}
component PlaceholderComp: Item {
property NexusState nState // To avoid the warning from non-existent property
ColumnLayout {
anchors.centerIn: parent
spacing: Tokens.padding.extraSmall
MaterialIcon {
Layout.alignment: Qt.AlignHCenter
text: "handyman"
color: Colours.palette.m3outlineVariant
font: Tokens.font.icon.extraLarge
}
StyledText {
Layout.alignment: Qt.AlignHCenter
text: qsTr("Page under construction")
color: Colours.palette.m3outlineVariant
font: Tokens.font.title.large
}
StyledText {
Layout.alignment: Qt.AlignHCenter
text: qsTr("This page will be available in a future update.")
color: Colours.palette.m3outlineVariant
font: Tokens.font.body.large
}
}
}
} }

View file

@ -1,10 +1,6 @@
pragma ComponentBehavior: Bound
import QtQuick import QtQuick
import QtQuick.Layouts
import Caelestia.Config import Caelestia.Config
import qs.components import qs.components
import qs.services
import qs.modules.nexus import qs.modules.nexus
Item { Item {
@ -20,7 +16,7 @@ Item {
if (currentItem) if (currentItem)
currentItem.destroy(); currentItem.destroy();
const comp = PageCompRegistry.pageComps[idx] ?? placeholderComp; const comp = PageCompRegistry.pageComps[idx] ?? PageCompRegistry.placeholderComp;
const incubator = comp.incubateObject(container, { const incubator = comp.incubateObject(container, {
nState nState
}); });
@ -96,38 +92,4 @@ Item {
} }
} }
} }
Component {
id: placeholderComp
Item {
property NexusState nState // To avoid the warning from non-existent property
ColumnLayout {
anchors.centerIn: parent
spacing: Tokens.padding.extraSmall
MaterialIcon {
Layout.alignment: Qt.AlignHCenter
text: "handyman"
color: Colours.palette.m3outlineVariant
font: Tokens.font.icon.extraLarge
}
StyledText {
Layout.alignment: Qt.AlignHCenter
text: qsTr("Page under construction")
color: Colours.palette.m3outlineVariant
font: Tokens.font.title.large
}
StyledText {
Layout.alignment: Qt.AlignHCenter
text: qsTr("This page will be available in a future update.")
color: Colours.palette.m3outlineVariant
font: Tokens.font.body.large
}
}
}
}
} }