Files
klz-cables.com/.pnpm-store/v10/files/bb/0c657a367dd2f939b921353ab30a01e45f1937c8a064e462accb4b5b4b3099b859eaf1af3228a21709604a7901f8fdd5f2c8390ad3982a756e636ec2e222f2
Marc Mintel 5397309103
Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 20s
Build & Deploy / 🧪 QA (push) Failing after 34s
Build & Deploy / 🏗️ Build (push) Has started running
Build & Deploy / 🚀 Deploy (push) Has been cancelled
Build & Deploy / 🧪 Smoke Test (push) Has been cancelled
Build & Deploy / ⚡ Lighthouse (push) Has been cancelled
Build & Deploy / 🔔 Notify (push) Has been cancelled
fix(products): fix breadcrumbs and product filtering (backport from main)
2026-02-24 16:04:21 +01:00

103 lines
3.6 KiB
Plaintext

'use client';
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
import { useModal } from '@faceless-ui/modal';
import { getTranslation } from '@payloadcms/translations';
import { setsAreEqual } from 'payload/shared';
import React, { useCallback, useMemo, useState } from 'react';
import { CheckboxInput } from '../../../fields/Checkbox/index.js';
import { useTranslation } from '../../../providers/Translation/index.js';
import { DrawerHeader } from '../../BulkUpload/Header/index.js';
import { Button } from '../../Button/index.js';
import { Drawer } from '../../Drawer/index.js';
import './index.scss';
const getLocaleOptions = ({
i18n,
localization
}) => {
return localization.locales.map(locale => ({
label: getTranslation(locale.label, i18n),
value: locale.code
}));
};
const baseClass = 'select-locales-drawer';
export const SelectLocalesDrawer = ({
slug,
localization,
onConfirm
}) => {
const {
i18n,
t
} = useTranslation();
const {
toggleModal
} = useModal();
const [selectedLocales, setSelectedLocales] = useState([]);
const localeOptions = useMemo(() => getLocaleOptions({
i18n,
localization
}), [localization, i18n]);
const allLocales = useMemo(() => localeOptions.map(locale => locale.value), [localeOptions]);
const allLocalesSelected = useMemo(() => setsAreEqual(new Set(selectedLocales), new Set(allLocales)), [selectedLocales, allLocales]);
const handleSelectAll = useCallback(() => {
setSelectedLocales(allLocalesSelected ? [] : [...allLocales]);
}, [allLocalesSelected, allLocales]);
const handleToggleLocale = useCallback(localeValue => {
setSelectedLocales(prev => prev.includes(localeValue) ? prev.filter(l => l !== localeValue) : [...prev, localeValue]);
}, []);
const handleConfirm = useCallback(async () => {
await onConfirm({
selectedLocales
});
toggleModal(slug);
}, [onConfirm, selectedLocales, slug, toggleModal]);
return /*#__PURE__*/_jsxs(Drawer, {
className: baseClass,
gutter: false,
Header: /*#__PURE__*/_jsx(DrawerHeader, {
onClose: () => {
toggleModal(slug);
},
title: `${t('general:duplicate')} ${t('localization:selectedLocales')}`
}),
slug: slug,
children: [/*#__PURE__*/_jsxs("div", {
className: `${baseClass}__sub-header`,
children: [/*#__PURE__*/_jsx("span", {
children: t('localization:selectLocaleToDuplicate')
}), /*#__PURE__*/_jsx(Button, {
buttonStyle: "primary",
disabled: selectedLocales.length === 0,
iconPosition: "left",
id: "#action-duplicate-confirm",
onClick: handleConfirm,
size: "medium",
children: t('general:duplicate')
})]
}), /*#__PURE__*/_jsxs("div", {
className: `${baseClass}__content`,
children: [/*#__PURE__*/_jsx("div", {
className: `${baseClass}__item`,
children: /*#__PURE__*/_jsx(CheckboxInput, {
checked: allLocalesSelected,
id: "select-locale-all",
label: t('general:selectAll', {
count: allLocales.length,
label: t('general:locales')
}),
onToggle: handleSelectAll
})
}), localeOptions.map(locale_0 => /*#__PURE__*/_jsx("div", {
className: `${baseClass}__item`,
children: /*#__PURE__*/_jsx(CheckboxInput, {
checked: selectedLocales.includes(locale_0.value),
id: `select-locale-${locale_0.value}`,
label: locale_0.label,
onToggle: () => handleToggleLocale(locale_0.value)
})
}, locale_0.value))]
})]
});
};
//# sourceMappingURL=index.js.map