Skip to content

Commit eb9708d

Browse files
tinicclaude
andcommitted
refactor: extract HalStatusPanel.vue
The simplest of the four menu panels: start/stop buttons + stdout textarea. App.vue now just binds startHAL/stopHAL/halStdoutText through events. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent dbb14ce commit eb9708d

2 files changed

Lines changed: 54 additions & 17 deletions

File tree

elle-app/elle-frontend/src/App.vue

Lines changed: 8 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import InputNumber from 'primevue/inputnumber'
77
88
import Numpad from './components/Numpad.vue'
99
import DRODisplay from './components/DRODisplay.vue'
10+
import HalStatusPanel from './components/HalStatusPanel.vue'
1011
import OperationPreview from './components/OperationPreview.vue'
1112
import ParameterButton from './components/ParameterButton.vue'
1213
import ToolTable from './components/ToolTable.vue'
@@ -1730,23 +1731,13 @@ onUnmounted(() => {
17301731
/>
17311732
</Dialog>
17321733
</div>
1733-
<div v-if="selectedMenu == MenuType.halStatus" class="flex-grow-1 flex flex-column">
1734-
<Toolbar class="flex-none p-1">
1735-
<template #start>
1736-
<Button label="Start HAL" icon="pi pi-play" class="mr-2" @click="startHAL" />
1737-
<Button label="Stop HAL" icon="pi pi-stop" severity="success" @click="stopHAL" />
1738-
</template>
1739-
</Toolbar>
1740-
<Textarea
1741-
v-model="halStdoutText"
1742-
auto-scroll="true"
1743-
class="console-output flex-grow-1"
1744-
spellcheck="false"
1745-
autocomplete="off"
1746-
autocorrect="off"
1747-
autocapitalize="off"
1748-
/>
1749-
</div>
1734+
<HalStatusPanel
1735+
v-if="selectedMenu == MenuType.halStatus"
1736+
:stdout-text="halStdoutText"
1737+
@update:stdout-text="halStdoutText = $event"
1738+
@start="startHAL"
1739+
@stop="stopHAL"
1740+
/>
17501741
<div v-if="selectedMenu == MenuType.settings" class="flex-grow-1 p-4">
17511742
<div class="dro-font-mode">
17521743
<h2 class="mb-4">Settings</h2>
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
<script setup lang="ts">
2+
import Button from 'primevue/button'
3+
import Toolbar from 'primevue/toolbar'
4+
import Textarea from 'primevue/textarea'
5+
6+
defineProps<{
7+
stdoutText: string
8+
}>()
9+
10+
defineEmits<{
11+
'update:stdoutText': [value: string]
12+
start: []
13+
stop: []
14+
}>()
15+
</script>
16+
17+
<template>
18+
<div class="flex-grow-1 flex flex-column">
19+
<Toolbar class="flex-none p-1">
20+
<template #start>
21+
<Button label="Start HAL" icon="pi pi-play" class="mr-2" @click="$emit('start')" />
22+
<Button label="Stop HAL" icon="pi pi-stop" severity="success" @click="$emit('stop')" />
23+
</template>
24+
</Toolbar>
25+
<Textarea
26+
:model-value="stdoutText"
27+
auto-scroll="true"
28+
class="console-output flex-grow-1"
29+
spellcheck="false"
30+
autocomplete="off"
31+
autocorrect="off"
32+
autocapitalize="off"
33+
@update:model-value="$emit('update:stdoutText', String($event ?? ''))"
34+
/>
35+
</div>
36+
</template>
37+
38+
<style scoped>
39+
.console-output {
40+
font-family: 'iosevka' !important;
41+
font-size: 1em;
42+
line-height: 1.2;
43+
height: 100% !important;
44+
resize: none;
45+
}
46+
</style>

0 commit comments

Comments
 (0)