import { usePage } from '@inertiajs/vue3';
import { computed } from 'vue';
import type { ComputedRef } from 'vue';

/**
 * Messages d'erreur serveur d'une section de ProductForm : les
 * synchronisations de relations passent par router.put, leurs erreurs
 * arrivent dans le bag de page avec des clés préfixées (ex. `prices.0.…`).
 */
export function useSectionErrors(prefix: string): ComputedRef<string[]> {
    const page = usePage();

    return computed(() =>
        Object.entries((page.props.errors ?? {}) as Record<string, string>)
            .filter(([key]) => key === prefix || key.startsWith(`${prefix}.`))
            .map(([, message]) => message),
    );
}
