Skip to content

Commit a36c921

Browse files
authored
Merge pull request #17 from itsmartashub/feat/toggle-msg-bubble
Add toggle to disable AI chat bubbles to match the default Deepseek style
2 parents 97aec75 + 778b7ee commit a36c921

4 files changed

Lines changed: 46 additions & 1 deletion

File tree

components/Custom/Layouts/Toggles.vue

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,32 @@
77
:iconComponent="IconThinkingProcess"
88
tooltip="<strong>NOTE</strong>: Clicking on the thought process element won't reveal it again. Only toggling this setting can restore it."
99
/>
10+
11+
<CardToggle
12+
v-model="toggleBubbleAI"
13+
title="Turn off AI Bubble"
14+
subtitle="Turn off the AI bubble style to match the default Deepseek look and feel."
15+
:iconComponent="IconBubbleOFF"
16+
/>
1017
</div>
1118
</template>
1219

1320
<script setup>
14-
import { hideThinkingItem } from '@/utils/storage'
21+
import { hideThinkingItem, toggleBubbleAIItem } from '@/utils/storage'
1522
import { useToggleStorage } from '@/composables/useToggleStorage.js'
1623
1724
import CardToggle from '@/components/Cards/Toggle.vue'
1825
import IconThinkingProcess from '@/components/Icons/ThinkingProcess.vue'
26+
import IconBubbleOFF from '@/components/Icons/BubbleOFF.vue'
1927
2028
// One toggle controls everything
2129
const hideThinkingState = useToggleStorage(hideThinkingItem, 'dsx-toggle-thinking-process')
30+
const toggleBubbleAI = useToggleStorage(toggleBubbleAIItem, 'dsx-toggle-ai-bubble')
2231
</script>
32+
33+
<style lang="scss">
34+
.layouts-toggles {
35+
display: grid;
36+
gap: 0.5rem;
37+
}
38+
</style>

components/Icons/BubbleOFF.vue

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<template>
2+
<svg
3+
xmlns="http://www.w3.org/2000/svg"
4+
width="24"
5+
height="24"
6+
viewBox="0 0 24 24"
7+
fill="none"
8+
stroke="currentColor"
9+
stroke-width="2"
10+
stroke-linecap="round"
11+
stroke-linejoin="round"
12+
class="icon icon-tabler icons-tabler-outline icon-tabler-bubble-x"
13+
>
14+
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
15+
<path
16+
d="M13.5 18.75c-.345 .09 -.727 .25 -1.1 .25a4.3 4.3 0 0 1 -1.57 -.298l-3.83 2.298v-3.134a2.668 2.668 0 0 1 -1.795 -3.773a4.8 4.8 0 0 1 2.908 -8.933a5.335 5.335 0 0 1 9.194 1.078a5.333 5.333 0 0 1 4.484 6.778"
17+
/>
18+
<path d="M22 22l-5 -5" />
19+
<path d="M17 22l5 -5" />
20+
</svg>
21+
</template>

styles/customs/_custom-toggles.scss

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,10 @@ html[dsx-toggle-accent-user-bubble] {
1212
@include bg-accent-inverse;
1313
}
1414
}
15+
}
16+
17+
html[dsx-toggle-ai-bubble] {
18+
._4f9bf79 {
19+
background: transparent !important;
20+
}
1521
}

utils/storage.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ const STORAGE_CONFIG = Object.freeze({
4848
maxWidthChatsItem: { key: 'local:maxWidthChats', fallback: { value: DEFAULT_MAX_WIDTH, unit: 'px' } },
4949
maxWidthTextareaItem: { key: 'local:maxWidthTextarea', fallback: { value: DEFAULT_MAX_WIDTH, unit: 'px' } },
5050
hideThinkingItem: { key: 'local:hideThinking', fallback: false },
51+
toggleBubbleAIItem: { key: 'local:toggleGptBubble', fallback: false },
5152
},
5253
})
5354

@@ -80,4 +81,5 @@ export const {
8081
maxWidthTextareaItem,
8182
hideThinkingItem,
8283
accentUserBubbleItem,
84+
toggleBubbleAIItem,
8385
} = storageItems

0 commit comments

Comments
 (0)