schon/storefront/composables/notification/useNotification.ts
Alexandr SaVBaD Waltz c60ac13e88 Features: 1) Introduce handleDeposit function with validation logic and deposit transaction flow; 2) Add useDeposit composable and balance.vue page for user account balance management; 3) Enhance wishlist and cart functionality with authentication checks and notification improvements;
Fixes: 1) Replace `ElNotification` with `useNotification` across all components and composables; 2) Add missing semicolons, consistent formatting, and type annotations in multiple files; 3) Resolve non-reactive elements in wishlist and cart state management;

Extra: 1) Update i18n translations with new strings for promocodes, balance, authentication, and profile settings; 2) Refactor SCSS styles including variable additions and component-specific tweaks; 3) Remove redundant queries, unused imports, and `storePage.ts` file for cleanup.
2025-07-08 23:41:31 +03:00

32 lines
No EOL
680 B
TypeScript

import type {VNodeChild} from "vue";
interface INotificationArguments {
message: string | VNodeChild,
type: string,
title?: string
}
export function useNotification(
args: INotificationArguments
) {
const duration = 5000
const progressBar = h('div', {
class: 'el-notification__progress',
style: { animationDuration: `${duration}ms` }
})
const bodyContent: VNodeChild =
typeof args.message === 'string'
? h('p', args.message)
: args.message
const messageVNode = h('div', [bodyContent, progressBar])
ElNotification({
title: args.title,
duration,
message: messageVNode,
type: args.type
} as NotificationOptions)
}