Skip to content

Commit 1ce42fc

Browse files
wip
1 parent 8ea6207 commit 1ce42fc

File tree

1 file changed

+33
-2
lines changed

1 file changed

+33
-2
lines changed

src/components/ExternalFeaturesDiscoveryModal.vue

Lines changed: 33 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -293,7 +293,20 @@
293293
</div>
294294

295295
<!-- Ignored Suggestions Section -->
296-
<div v-if="ignoredJoystickSuggestionsByExtension.length > 0" class="mb-8">
296+
<div v-if="ignoredJoystickSuggestionsByExtension.length > 0" class="mb-4">
297+
<v-btn
298+
variant="text"
299+
color="grey-lighten-1"
300+
class="opacity-70 hover:opacity-100"
301+
:prepend-icon="showIgnoredMappings ? 'mdi-chevron-up' : 'mdi-chevron-down'"
302+
@click="showIgnoredMappings = !showIgnoredMappings"
303+
>
304+
{{ showIgnoredMappings ? 'Hide ignored mappings' : 'Show ignored mappings' }}
305+
</v-btn>
306+
</div>
307+
308+
<!-- Ignored Suggestions Section -->
309+
<div v-if="showIgnoredMappings && ignoredJoystickSuggestionsByExtension.length > 0" class="mb-8">
297310
<div class="flex items-center gap-2 mb-4">
298311
<v-icon size="24" color="orange">mdi-close-circle</v-icon>
299312
<h2 class="text-xl font-semibold">Ignored Mappings</h2>
@@ -595,6 +608,11 @@ const activeTab = ref('actions')
595608
*/
596609
const showAppliedMappings = ref(false)
597610
611+
/**
612+
* Controls visibility of ignored mappings section
613+
*/
614+
const showIgnoredMappings = ref(false)
615+
598616
/**
599617
* Action with extension name
600618
*/
@@ -835,6 +853,13 @@ const ignoredJoystickSuggestionsByExtension = computed(() => {
835853
.filter((ext) => ext.suggestionGroups.length > 0)
836854
})
837855
856+
/**
857+
* Whether there are new extension features that still need user action
858+
*/
859+
const hasPendingBlueOSFeatures = computed(() => {
860+
return filteredActions.value.length > 0 || filteredJoystickSuggestionsByExtension.value.length > 0
861+
})
862+
838863
/**
839864
* Get the human-readable name for an action type
840865
* @param {customActionTypes} type - The action type
@@ -1241,7 +1266,7 @@ const checkForBlueOSFeatures = async (): Promise<void> => {
12411266
ensureSelectedProfile()
12421267
12431268
// Show modal if there are any features available
1244-
if (filteredActions.value.length > 0 || filteredJoystickSuggestionsByExtension.value.length > 0) {
1269+
if (hasPendingBlueOSFeatures.value) {
12451270
isVisible.value = true
12461271
// Set active tab based on what's available
12471272
if (filteredJoystickSuggestionsByExtension.value.length > 0 && filteredActions.value.length === 0) {
@@ -1264,6 +1289,12 @@ watch(
12641289
ensureSelectedProfile()
12651290
}
12661291
)
1292+
1293+
watch(hasPendingBlueOSFeatures, (hasPending) => {
1294+
if (!hasPending) {
1295+
isVisible.value = false
1296+
}
1297+
})
12671298
</script>
12681299

12691300
<style scoped>

0 commit comments

Comments
 (0)