Files
server/core/src/composables/useSnackbar.ts
2026-02-10 18:46:11 -05:00

39 lines
876 B
TypeScript

/**
* Simple snackbar/toast notification composable
* Uses Vuetify's snackbar component
*/
import { ref } from 'vue'
export interface SnackbarOptions {
message: string
color?: 'success' | 'error' | 'warning' | 'info' | string
timeout?: number
}
const snackbarVisible = ref(false)
const snackbarMessage = ref('')
const snackbarColor = ref<string>('info')
const snackbarTimeout = ref(3000)
export function useSnackbar() {
const showSnackbar = (options: SnackbarOptions) => {
snackbarMessage.value = options.message
snackbarColor.value = options.color || 'info'
snackbarTimeout.value = options.timeout || 3000
snackbarVisible.value = true
}
const hideSnackbar = () => {
snackbarVisible.value = false
}
return {
snackbarVisible,
snackbarMessage,
snackbarColor,
snackbarTimeout,
showSnackbar,
hideSnackbar,
}
}