Skip to content

Commit ae78188

Browse files
authored
perf: use shallowRef and useTemplateRef (#476)
1 parent 7937192 commit ae78188

27 files changed

Lines changed: 77 additions & 74 deletions

app/components/AppHeader.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ const { isConnected, npmUser } = useConnector()
1212
1313
const router = useRouter()
1414
15-
const showFullSearch = ref(false)
15+
const showFullSearch = shallowRef(false)
1616
1717
onKeyStroke(',', e => {
1818
// Don't trigger if user is typing in an input

app/components/AuthButton.client.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<script setup lang="ts">
2-
const showModal = ref(false)
2+
const showModal = shallowRef(false)
33
const { user } = useAtproto()
44
</script>
55

app/components/AuthButton.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<script setup lang="ts">
2-
const showModal = ref(false)
2+
const showModal = shallowRef(false)
33
const { user } = useAtproto()
44
</script>
55

app/components/AuthModal.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<script setup lang="ts">
22
const open = defineModel<boolean>('open', { default: false })
33
4-
const handleInput = ref('')
4+
const handleInput = shallowRef('')
55
66
const { user, logout } = useAtproto()
77

app/components/ColumnPicker.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ const emit = defineEmits<{
1010
reset: []
1111
}>()
1212
13-
const isOpen = ref(false)
13+
const isOpen = shallowRef(false)
1414
const buttonRef = useTemplateRef('buttonRef')
1515
const menuRef = useTemplateRef('menuRef')
1616
const menuId = useId()

app/components/DependencyPathPopup.vue

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,9 @@ defineProps<{
55
}>()
66
77
const isOpen = shallowRef(false)
8-
const popupEl = ref<HTMLElement | null>(null)
8+
const popupEl = useTemplateRef('popupEl')
99
const popupPosition = shallowRef<{ top: number; left: number } | null>(null)
1010
11-
// Function ref - captures the element when popup mounts
12-
function setPopupRef(el: unknown) {
13-
popupEl.value = (el as HTMLElement) || null
14-
}
15-
1611
function closePopup() {
1712
isOpen.value = false
1813
}
@@ -78,7 +73,7 @@ function parsePackageString(pkg: string): { name: string; version: string } {
7873
<!-- Tree popup -->
7974
<div
8075
v-if="isOpen"
81-
:ref="setPopupRef"
76+
ref="popupEl"
8277
class="fixed z-[100] bg-bg-elevated border border-border rounded-lg shadow-xl p-3 min-w-64 max-w-sm"
8378
:style="getPopupStyle()"
8479
>

app/components/FilterPanel.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@ const emit = defineEmits<{
2727
'toggleKeyword': [keyword: string]
2828
}>()
2929
30-
const isExpanded = ref(false)
31-
const showAllKeywords = ref(false)
30+
const isExpanded = shallowRef(false)
31+
const showAllKeywords = shallowRef(false)
3232
3333
const displayedKeywords = computed(() => {
3434
const keywords = props.availableKeywords ?? []

app/components/HeaderAccountMenu.client.vue

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ const {
1010
1111
const { user: atprotoUser } = useAtproto()
1212
13-
const isOpen = ref(false)
14-
const showConnectorModal = ref(false)
15-
const showAuthModal = ref(false)
13+
const isOpen = shallowRef(false)
14+
const showConnectorModal = shallowRef(false)
15+
const showAuthModal = shallowRef(false)
1616
1717
/** Check if connected to at least one service */
1818
const hasAnyConnection = computed(() => isNpmConnected.value || !!atprotoUser.value)

app/components/HeaderOrgsDropdown.vue

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@ const props = defineProps<{
55
66
const { listUserOrgs } = useConnector()
77
8-
const isOpen = ref(false)
9-
const isLoading = ref(false)
10-
const orgs = ref<string[]>([])
11-
const hasLoaded = ref(false)
12-
const error = ref<string | null>(null)
8+
const isOpen = shallowRef(false)
9+
const isLoading = shallowRef(false)
10+
const orgs = shallowRef<string[]>([])
11+
const hasLoaded = shallowRef(false)
12+
const error = shallowRef<string | null>(null)
1313
1414
async function loadOrgs() {
1515
if (hasLoaded.value || isLoading.value) return

app/components/HeaderPackagesDropdown.vue

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@ const props = defineProps<{
55
66
const { listUserPackages } = useConnector()
77
8-
const isOpen = ref(false)
9-
const isLoading = ref(false)
10-
const packages = ref<string[]>([])
11-
const hasLoaded = ref(false)
12-
const error = ref<string | null>(null)
8+
const isOpen = shallowRef(false)
9+
const isLoading = shallowRef(false)
10+
const packages = shallowRef<string[]>([])
11+
const hasLoaded = shallowRef(false)
12+
const error = shallowRef<string | null>(null)
1313
1414
async function loadPackages() {
1515
if (hasLoaded.value || isLoading.value) return

0 commit comments

Comments
 (0)