@@ -199,10 +199,18 @@ function syncFormFromData() {
originalProperties.value = { ...flat }
}
+const hasNoProperties = computed(() => Object.keys(liveProperties.value).length === 0)
+
+const hasUnsavedChanges = computed(() =>
+ Object.keys(liveProperties.value).some(
+ (key) => liveProperties.value[key] !== originalProperties.value[key],
+ ),
+)
+
watch(
propsData,
- (newData, oldData) => {
- if (newData && !oldData) {
+ (newData) => {
+ if (newData && !hasUnsavedChanges.value) {
syncFormFromData()
}
},
@@ -213,16 +221,6 @@ watch(powerState, () => {
queryClient.invalidateQueries({ queryKey: queryKey.value })
})
-const missingKnownProperties = computed(() =>
- Object.keys(KNOWN_PROPERTIES).filter((key) => !(key in liveProperties.value)),
-)
-
-const hasUnsavedChanges = computed(() =>
- Object.keys(liveProperties.value).some(
- (key) => liveProperties.value[key] !== originalProperties.value[key],
- ),
-)
-
function buildPatch(): Archon.Content.v1.PatchPropertiesFields {
const known: Record
= {}
const custom: Record = {}
diff --git a/packages/ui/src/utils/search.ts b/packages/ui/src/utils/search.ts
index 093cfc60c..e1a4f0c09 100644
--- a/packages/ui/src/utils/search.ts
+++ b/packages/ui/src/utils/search.ts
@@ -766,17 +766,17 @@ function mapProjectTypeToSearch(projectType: ProjectType): string {
function getEnvironmentFilterGroups(client: boolean, server: boolean): string[][] {
const groups: string[][] = []
if (client && server) {
- groups.push(['client_side:required'], ['server_side:required'])
+ groups.push(
+ ['client_side:required', 'client_side:optional', 'client_side:unsupported'],
+ ['server_side:required', 'server_side:optional'],
+ )
} else if (client) {
groups.push(
['client_side:optional', 'client_side:required'],
['server_side:optional', 'server_side:unsupported'],
)
} else if (server) {
- groups.push(
- ['client_side:optional', 'client_side:unsupported'],
- ['server_side:optional', 'server_side:required'],
- )
+ groups.push(['server_side:optional', 'server_side:required'])
}
return groups
}