fixed linting errors
This commit is contained in:
parent
85a55111cc
commit
e20ab64793
4 changed files with 58 additions and 23 deletions
|
@ -41,7 +41,8 @@
|
||||||
</button>
|
</button>
|
||||||
<input
|
<input
|
||||||
:id="`quantity-${index}`"
|
:id="`quantity-${index}`"
|
||||||
v-model.number="drink.quantity"
|
:value="drink.quantity"
|
||||||
|
@input="updateQuantity"
|
||||||
type="number"
|
type="number"
|
||||||
min="1"
|
min="1"
|
||||||
max="99"
|
max="99"
|
||||||
|
@ -72,7 +73,8 @@
|
||||||
<div class="notes-input">
|
<div class="notes-input">
|
||||||
<input
|
<input
|
||||||
:id="`notes-${index}`"
|
:id="`notes-${index}`"
|
||||||
v-model="drink.notes"
|
:value="drink.notes"
|
||||||
|
@input="updateNotes"
|
||||||
type="text"
|
type="text"
|
||||||
placeholder="Notiz (optional)"
|
placeholder="Notiz (optional)"
|
||||||
class="notes-field"
|
class="notes-field"
|
||||||
|
@ -141,6 +143,20 @@ const setQuantity = (n: number) => {
|
||||||
emit('update', updatedDrink)
|
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 for changes and emit updates
|
||||||
watch(() => props.drink, (newDrink) => {
|
watch(() => props.drink, (newDrink) => {
|
||||||
emit('update', newDrink)
|
emit('update', newDrink)
|
||||||
|
|
|
@ -1,6 +1,31 @@
|
||||||
import { defineStore } from 'pinia'
|
import { defineStore } from 'pinia'
|
||||||
import { ref, computed } from 'vue'
|
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', () => {
|
export const useOrderStore = defineStore('orders', () => {
|
||||||
// State
|
// State
|
||||||
|
@ -12,7 +37,7 @@ export const useOrderStore = defineStore('orders', () => {
|
||||||
|
|
||||||
// Getters
|
// Getters
|
||||||
const openOrders = computed(() => {
|
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
|
// Hier können wir später Logik für "offene" Bestellungen hinzufügen
|
||||||
// Momentan zeigen wir alle Bestellungen an
|
// Momentan zeigen wir alle Bestellungen an
|
||||||
return true
|
return true
|
||||||
|
@ -42,8 +67,8 @@ export const useOrderStore = defineStore('orders', () => {
|
||||||
try {
|
try {
|
||||||
const data = JSON.parse(event.data)
|
const data = JSON.parse(event.data)
|
||||||
handleWebSocketMessage(data)
|
handleWebSocketMessage(data)
|
||||||
} catch (e) {
|
} catch {
|
||||||
console.error('Fehler beim Parsen der WebSocket-Nachricht:', e)
|
// Ignoriere andere Nachrichten
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -77,33 +102,33 @@ export const useOrderStore = defineStore('orders', () => {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const handleWebSocketMessage = (data: any) => {
|
const handleWebSocketMessage = (data: WebSocketMessage) => {
|
||||||
switch (data.type) {
|
switch (data.type) {
|
||||||
case 'all_orders':
|
case 'all_orders':
|
||||||
setOrders(data.orders)
|
setOrders((data as unknown as AllOrdersResponse).orders)
|
||||||
isLoading.value = false
|
isLoading.value = false
|
||||||
break
|
break
|
||||||
case 'order_created':
|
case 'order_created':
|
||||||
addOrder(data.order)
|
addOrder(data.order as Order)
|
||||||
break
|
break
|
||||||
case 'order_updated':
|
case 'order_updated':
|
||||||
updateOrder(data.order)
|
updateOrder(data.order as Order)
|
||||||
break
|
break
|
||||||
case 'order_deleted':
|
case 'order_deleted':
|
||||||
removeOrder(data.order_id)
|
removeOrder(data.order_id as string)
|
||||||
break
|
break
|
||||||
case 'order_created_response':
|
case 'order_created_response':
|
||||||
handleOrderCreatedResponse(data)
|
handleOrderCreatedResponse(data as unknown as OrderCreatedResponse)
|
||||||
break
|
break
|
||||||
case 'order_deleted_response':
|
case 'order_deleted_response':
|
||||||
handleOrderDeletedResponse(data)
|
handleOrderDeletedResponse(data as unknown as OrderDeletedResponse)
|
||||||
break
|
break
|
||||||
default:
|
default:
|
||||||
console.log('Unbekannte WebSocket-Nachricht:', data)
|
console.log('Unbekannte WebSocket-Nachricht:', data)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const handleOrderCreatedResponse = (data: any) => {
|
const handleOrderCreatedResponse = (data: OrderCreatedResponse) => {
|
||||||
if (data.success) {
|
if (data.success) {
|
||||||
// Bestellung wurde erfolgreich erstellt
|
// Bestellung wurde erfolgreich erstellt
|
||||||
console.log('Bestellung erfolgreich erstellt:', data.order)
|
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) {
|
if (data.success) {
|
||||||
// Bestellung wurde erfolgreich gelöscht
|
// Bestellung wurde erfolgreich gelöscht
|
||||||
console.log('Bestellung erfolgreich gelöscht:', data.message)
|
console.log('Bestellung erfolgreich gelöscht:', data.message)
|
||||||
|
@ -155,7 +180,7 @@ export const useOrderStore = defineStore('orders', () => {
|
||||||
reject(new Error(data.error || 'Unbekannter Fehler'))
|
reject(new Error(data.error || 'Unbekannter Fehler'))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch {
|
||||||
// Ignoriere andere Nachrichten
|
// Ignoriere andere Nachrichten
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -220,7 +245,7 @@ export const useOrderStore = defineStore('orders', () => {
|
||||||
reject(new Error(data.error || 'Unbekannter Fehler'))
|
reject(new Error(data.error || 'Unbekannter Fehler'))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch {
|
||||||
// Ignoriere andere Nachrichten
|
// Ignoriere andere Nachrichten
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -75,13 +75,11 @@
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ref, computed, onMounted, onUnmounted } from 'vue'
|
import { ref, computed, onMounted, onUnmounted } from 'vue'
|
||||||
import { useRouter } from 'vue-router'
|
|
||||||
import { useOrderStore } from '@/stores/orderStore'
|
import { useOrderStore } from '@/stores/orderStore'
|
||||||
import { DrinkType, MateType, type Drink } from '@/types/order'
|
import { DrinkType, MateType, type Drink } from '@/types/order'
|
||||||
import DrinkCard from '@/components/NewDrinkCard.vue'
|
import DrinkCard from '@/components/NewDrinkCard.vue'
|
||||||
import { type Order } from '@/types/order'
|
import { type Order } from '@/types/order'
|
||||||
|
|
||||||
const router = useRouter()
|
|
||||||
const orderStore = useOrderStore()
|
const orderStore = useOrderStore()
|
||||||
|
|
||||||
// State
|
// State
|
||||||
|
|
|
@ -79,10 +79,6 @@ const lastUpdate = computed(() => {
|
||||||
})
|
})
|
||||||
|
|
||||||
// Methods
|
// Methods
|
||||||
const refreshOrders = () => {
|
|
||||||
orderStore.requestAllOrders()
|
|
||||||
}
|
|
||||||
|
|
||||||
const retryConnection = () => {
|
const retryConnection = () => {
|
||||||
orderStore.connectWebSocket()
|
orderStore.connectWebSocket()
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue