Vibe Coding Wallpaper
Start vibing
All scenes
Editor Flow

Midnight Refactor

northstar-dashboard / feat/presence-stack
PROMPT · 0%
AGENT REASONING
Frame the constraintPresence can change without moving the surrounding header.
CODEX Refactor the presence indicator without causing layout shifts PROMPT
PresenceStack.vueTSusePresenceChannel.tsTPresenceStack.test.ts+Ln 24, Col 18•••
1<script setup lang="ts">
2import { computed, onBeforeUnmount } from 'vue'
3import { usePresenceChannel } from '@/composables/usePresenceChannel'
4import type { WorkspaceMember } from '@/types/workspace'
5
6const props = defineProps<{
7 workspaceId: string
8 members: WorkspaceMember[]
9 maxVisible?: number
10}>()
11
12const emit = defineEmits<{
13 select: [member: WorkspaceMember]
14}>()
15
16const maxVisible = computed(() => props.maxVisible ?? 4)
17const { onlineIds, disconnect } = usePresenceChannel(props.workspaceId)
18
19const onlineMembers = computed(() =>
20 props.members
21 .filter((member) => onlineIds.value.has(member.id))
22 .sort((a, b) => a.name.localeCompare(b.name))
23)
24
25+const visibleMembers = computed(() =>
26+ onlineMembers.value.slice(0, maxVisible.value)
27+)
28
29+const overflowCount = computed(() =>
30+ Math.max(0, onlineMembers.value.length - visibleMembers.value.length)
31+)
32
33onBeforeUnmount(disconnect)
34</script>
35
36<template>
37 <TransitionGroup name="presence" tag="div" class="presence-stack">
38+ <button v-for="member in visibleMembers" :key="member.id"
39+ class="avatar" @click="emit('select', member)">
40+ <img :src="member.avatarUrl" :alt="member.name">
41+ <span class="online-dot" />
42+ </button>
43+ <span v-if="overflowCount" class="overflow">+{{ overflowCount }}</span>
44 </TransitionGroup>
45</template>
TERMINALvitest · northstar×

pnpm vitest PresenceStack.test.ts --run

RUNS  tests/components/PresenceStack.test.ts

TS2322
TypeScript

Type 'undefined' is not assignable to type 'WorkspaceMember'

Quick Fix…
Presence stack refactored with stable keyed transitions3 files changed · +42 −11
Hot update appliedPresenceStack.vue · 34ms
⑂ feat/presence-stack*0 errors✓ component tests: 18 passed✓ typecheck: 0 errors✓ layout shift: 0.00 CLS
About this scene

Midnight Refactor

A calm editor flow with glowing syntax, deliberate typing, and a passing test suite.

Designed for deep work, streaming backgrounds, and the quiet pleasure of watching software take shape.

VS Code inspiredTypeScriptFocus