Files
telemetry_visualization/frontend/src/views/PanelView.vue
Sergey Savelyev f658b55586 Implement Commanding (#6)
Reviewed-on: #6
Co-authored-by: Sergey Savelyev <sergeysav.nn@gmail.com>
Co-committed-by: Sergey Savelyev <sergeysav.nn@gmail.com>
2025-12-28 13:39:12 -08:00

38 lines
973 B
Vue

<script setup lang="ts">
import DynamicComponent from '@/components/DynamicComponent.vue';
import type {
DynamicDataType,
OptionalDynamicComponentData,
} from '@/composables/dynamic.ts';
import { computed, provide, ref, watchEffect } from 'vue';
import { useRoute } from 'vue-router';
const route = useRoute();
const id = computed<string>(() => route.params.id as string);
const panel = ref<OptionalDynamicComponentData>({
type: 'none',
});
const inputs = ref<{ [id: string]: DynamicDataType }>({});
provide('inputs', inputs);
watchEffect(async () => {
const panel_data = await fetch(`/api/panel/${id.value}`);
const panel_json_value = await panel_data.json();
panel.value = JSON.parse(
panel_json_value['data'],
) as OptionalDynamicComponentData;
});
</script>
<template>
<DynamicComponent v-model:data="panel" :editable="false"></DynamicComponent>
</template>
<style scoped lang="scss">
@use '@/assets/variables';
</style>