import { Component, Inject, inject } from '@angular/core'; import { MAT_SNACK_BAR_DATA, MatSnackBarRef } from '@angular/material/snack-bar'; import { SnackConfig } from './interface/snackConfig.interface'; import { CircleX, CircleAlert, Check } from 'lucide-angular'; import { SnackType } from './enum'; @Component({ selector: 'kit-snack-messages', templateUrl: './snack-messages.component.html', }) export class SnackMessagesComponent { private readonly icons = { [SnackType.ERROR]: { name: CircleX, size: 24, color: '#343F4B', }, [SnackType.WARNING]: { name: CircleAlert, size: 24, color: '#343F4B', }, [SnackType.SUCCESS]: { name: Check, size: 24, color: '#343F4B', } }; snackBarRef = inject(MatSnackBarRef); constructor( @Inject(MAT_SNACK_BAR_DATA) public data: SnackConfig, ){ if (!data.icon) { const snackType = Array.isArray(this.data.class) ? this.data.class.find(c => this.icons[c as SnackType]) : this.data.class; if (snackType) { this.data = { ...data, icon: this.icons[snackType as SnackType] }; } } } }