fixed linting errors
Some checks failed
CI Simple / Test and Build (push) Failing after 3m11s
CI / Frontend Build (push) Failing after 3m25s
CI / Backend Tests (push) Failing after 3m28s
CI / Backend Build (push) Has been skipped
CI / Docker Build Test (push) Has been skipped

This commit is contained in:
Jan Felix Wiebe 2025-07-11 15:39:21 +02:00
parent 85a55111cc
commit e20ab64793
4 changed files with 58 additions and 23 deletions

View file

@ -41,7 +41,8 @@
</button>
<input
:id="`quantity-${index}`"
v-model.number="drink.quantity"
:value="drink.quantity"
@input="updateQuantity"
type="number"
min="1"
max="99"
@ -72,7 +73,8 @@
<div class="notes-input">
<input
:id="`notes-${index}`"
v-model="drink.notes"
:value="drink.notes"
@input="updateNotes"
type="text"
placeholder="Notiz (optional)"
class="notes-field"
@ -141,6 +143,20 @@ const setQuantity = (n: number) => {
emit('update', updatedDrink)
}
const updateQuantity = (event: Event) => {
const target = event.target as HTMLInputElement
const quantity = parseInt(target.value) || 1
const updatedDrink = { ...props.drink, quantity }
emit('update', updatedDrink)
}
const updateNotes = (event: Event) => {
const target = event.target as HTMLInputElement
const notes = target.value
const updatedDrink = { ...props.drink, notes }
emit('update', updatedDrink)
}
// Watch for changes and emit updates
watch(() => props.drink, (newDrink) => {
emit('update', newDrink)

View file

@ -1,6 +1,31 @@
import { defineStore } from 'pinia'
import { ref, computed } from 'vue'
import type { Order, CreateOrderRequest } from '@/types/order'
import { type Order, type CreateOrderRequest } from '@/types/order'
// WebSocket message types
interface WebSocketMessage {
type: string
[key: string]: unknown
}
interface AllOrdersResponse {
type: 'all_orders'
orders: Order[]
}
interface OrderCreatedResponse {
type: 'order_created_response'
success: boolean
order?: Order
error?: string
}
interface OrderDeletedResponse {
type: 'order_deleted_response'
success: boolean
message?: string
error?: string
}
export const useOrderStore = defineStore('orders', () => {
// State
@ -12,7 +37,7 @@ export const useOrderStore = defineStore('orders', () => {
// Getters
const openOrders = computed(() => {
return orders.value.filter(order => {
return orders.value.filter(() => {
// Hier können wir später Logik für "offene" Bestellungen hinzufügen
// Momentan zeigen wir alle Bestellungen an
return true
@ -42,8 +67,8 @@ export const useOrderStore = defineStore('orders', () => {
try {
const data = JSON.parse(event.data)
handleWebSocketMessage(data)
} catch (e) {
console.error('Fehler beim Parsen der WebSocket-Nachricht:', e)
} catch {
// Ignoriere andere Nachrichten
}
}
@ -77,33 +102,33 @@ export const useOrderStore = defineStore('orders', () => {
}
}
const handleWebSocketMessage = (data: any) => {
const handleWebSocketMessage = (data: WebSocketMessage) => {
switch (data.type) {
case 'all_orders':
setOrders(data.orders)
setOrders((data as unknown as AllOrdersResponse).orders)
isLoading.value = false
break
case 'order_created':
addOrder(data.order)
addOrder(data.order as Order)
break
case 'order_updated':
updateOrder(data.order)
updateOrder(data.order as Order)
break
case 'order_deleted':
removeOrder(data.order_id)
removeOrder(data.order_id as string)
break
case 'order_created_response':
handleOrderCreatedResponse(data)
handleOrderCreatedResponse(data as unknown as OrderCreatedResponse)
break
case 'order_deleted_response':
handleOrderDeletedResponse(data)
handleOrderDeletedResponse(data as unknown as OrderDeletedResponse)
break
default:
console.log('Unbekannte WebSocket-Nachricht:', data)
}
}
const handleOrderCreatedResponse = (data: any) => {
const handleOrderCreatedResponse = (data: OrderCreatedResponse) => {
if (data.success) {
// Bestellung wurde erfolgreich erstellt
console.log('Bestellung erfolgreich erstellt:', data.order)
@ -115,7 +140,7 @@ export const useOrderStore = defineStore('orders', () => {
}
}
const handleOrderDeletedResponse = (data: any) => {
const handleOrderDeletedResponse = (data: OrderDeletedResponse) => {
if (data.success) {
// Bestellung wurde erfolgreich gelöscht
console.log('Bestellung erfolgreich gelöscht:', data.message)
@ -155,7 +180,7 @@ export const useOrderStore = defineStore('orders', () => {
reject(new Error(data.error || 'Unbekannter Fehler'))
}
}
} catch (e) {
} catch {
// Ignoriere andere Nachrichten
}
}
@ -220,7 +245,7 @@ export const useOrderStore = defineStore('orders', () => {
reject(new Error(data.error || 'Unbekannter Fehler'))
}
}
} catch (e) {
} catch {
// Ignoriere andere Nachrichten
}
}

View file

@ -75,13 +75,11 @@
<script setup lang="ts">
import { ref, computed, onMounted, onUnmounted } from 'vue'
import { useRouter } from 'vue-router'
import { useOrderStore } from '@/stores/orderStore'
import { DrinkType, MateType, type Drink } from '@/types/order'
import DrinkCard from '@/components/NewDrinkCard.vue'
import { type Order } from '@/types/order'
const router = useRouter()
const orderStore = useOrderStore()
// State

View file

@ -79,10 +79,6 @@ const lastUpdate = computed(() => {
})
// Methods
const refreshOrders = () => {
orderStore.requestAllOrders()
}
const retryConnection = () => {
orderStore.connectWebSocket()
}