264 lines
7.5 KiB
JavaScript
264 lines
7.5 KiB
JavaScript
import {ad as v, aS as T, $ as I, r as h, aT as p, ac as u, aU as S, aV as B, j as e, a4 as m, aW as _, a1 as R, a2 as b, e as P, X as w, a3 as j, a5 as E, a6 as q, a7 as C, t as A, s as M, N as D, c as F} from "./index-CdMy-Rhi.js";
|
|
/**
|
|
* @license @tabler/icons-react v3.21.0 - MIT
|
|
*
|
|
* This source code is licensed under the MIT license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*/
|
|
var N = v("outline", "refresh", "IconRefresh", [["path", {
|
|
d: "M20 11a8.1 8.1 0 0 0 -15.5 -2m-.5 -4v4h4",
|
|
key: "svg-0"
|
|
}], ["path", {
|
|
d: "M4 13a8.1 8.1 0 0 0 15.5 2m.5 4v-4h-4",
|
|
key: "svg-1"
|
|
}]]);
|
|
const $ = "_container_b84hd_1"
|
|
, y = {
|
|
container: $,
|
|
"top-panel": "_top-panel_b84hd_8",
|
|
"top-panel-last-item": "_top-panel-last-item_b84hd_14"
|
|
}
|
|
, z = () => {
|
|
const s = T()
|
|
, o = I(a => a.tasks.tasks)
|
|
, [l,f] = h.useState()
|
|
, [i,d] = h.useState([])
|
|
, c = async () => {
|
|
l && p.getClientMarketplaces({
|
|
requestBody: {
|
|
clientId: l.id
|
|
}
|
|
}).then(a => {
|
|
d(a.marketplaces)
|
|
}
|
|
)
|
|
}
|
|
, x = a => {
|
|
p.createMarketplace({
|
|
requestBody: {
|
|
marketplace: {
|
|
...a,
|
|
clientId: a.client.id,
|
|
baseMarketplaceKey: a.baseMarketplace.key
|
|
}
|
|
}
|
|
}).then(async ({ok: n, message: r}) => {
|
|
u.guess(n, {
|
|
message: r
|
|
}),
|
|
n && await c()
|
|
}
|
|
)
|
|
}
|
|
, k = a => {
|
|
p.deleteMarketplace({
|
|
requestBody: {
|
|
marketplaceId: a.id
|
|
}
|
|
}).then(async ({ok: n, message: r}) => {
|
|
u.guess(n, {
|
|
message: r
|
|
}),
|
|
n && await c()
|
|
}
|
|
)
|
|
}
|
|
, g = a => {
|
|
p.updateMarketplace({
|
|
requestBody: {
|
|
marketplace: a
|
|
}
|
|
}).then(async ({ok: n, message: r}) => {
|
|
u.guess(n, {
|
|
message: r
|
|
}),
|
|
n && await c()
|
|
}
|
|
)
|
|
}
|
|
, t = a => {
|
|
if (o.find(r => r.info.marketplaceId === a.id)) {
|
|
u.error({
|
|
title: "Ошибка",
|
|
message: `Синхронизация маркетплейса ${a.name} уже запущена`
|
|
});
|
|
return
|
|
}
|
|
S.createSynchronizeMarketplaceTask({
|
|
requestBody: {
|
|
marketplaceId: a.id
|
|
}
|
|
}).then( ({taskId: r}) => {
|
|
s(B({
|
|
id: r,
|
|
config: {
|
|
onErrorData: {
|
|
title: "Ошибка",
|
|
message: `Ошибка синхронизации маркетплейса: ${a.name}`
|
|
},
|
|
onLoadingData: {
|
|
title: "Синхронизация",
|
|
message: `Синхронизация маркетплейса: ${a.name}`
|
|
},
|
|
onSuccessData: {
|
|
title: "Успех",
|
|
message: `Маркетплейс ${a.name} успешно синхронизирован`
|
|
}
|
|
},
|
|
info: {
|
|
marketplaceId: a.id
|
|
}
|
|
}))
|
|
}
|
|
)
|
|
}
|
|
;
|
|
return h.useEffect( () => {
|
|
c()
|
|
}
|
|
, [l]),
|
|
{
|
|
client: l,
|
|
setClient: f,
|
|
items: i,
|
|
onDelete: k,
|
|
onChange: g,
|
|
onCreate: x,
|
|
onSynchronize: t
|
|
}
|
|
}
|
|
, K = () => h.useMemo( () => [{
|
|
header: "Маркетплейс",
|
|
size: 10,
|
|
Cell: ({row: s}) => {
|
|
var o;
|
|
return e.jsx(m, {
|
|
variant: "transparent",
|
|
children: e.jsx(_, {
|
|
src: ((o = s.original.baseMarketplace) == null ? void 0 : o.iconUrl) || ""
|
|
})
|
|
})
|
|
}
|
|
}, {
|
|
accessorKey: "name",
|
|
header: "Название",
|
|
enableSorting: !1
|
|
}, {
|
|
accessorKey: "client.name",
|
|
header: "Клиент",
|
|
enableSorting: !1
|
|
}], [])
|
|
, L = ({onDelete: s, onChange: o, onCreate: l, items: f, client: i, onSynchronize: d}) => {
|
|
const c = K()
|
|
, x = t => {
|
|
s && C.openConfirmModal({
|
|
title: "Удаление маркетплейса",
|
|
children: e.jsxs(A, {
|
|
size: "sm",
|
|
children: ["Вы уверены что хотите удалить маркетплейс ", t.name]
|
|
}),
|
|
labels: {
|
|
confirm: "Да",
|
|
cancel: "Нет"
|
|
},
|
|
confirmProps: {
|
|
color: "red"
|
|
},
|
|
onConfirm: () => s(t)
|
|
})
|
|
}
|
|
, k = t => {
|
|
o && C.openContextModal({
|
|
modal: "marketplaceFormModal",
|
|
withCloseButton: !1,
|
|
innerProps: {
|
|
onChange: a => o(a),
|
|
element: t
|
|
}
|
|
})
|
|
}
|
|
, g = () => {
|
|
!l || !i || C.openContextModal({
|
|
modal: "marketplaceFormModal",
|
|
withCloseButton: !1,
|
|
innerProps: {
|
|
onCreate: t => l({
|
|
...t,
|
|
client: i
|
|
})
|
|
}
|
|
})
|
|
}
|
|
;
|
|
return e.jsx(R, {
|
|
data: f,
|
|
columns: c,
|
|
restProps: {
|
|
enableSorting: !1,
|
|
enableColumnActions: !1,
|
|
enableTopToolbar: !0,
|
|
renderTopToolbar: e.jsx(b, {
|
|
p: P(10),
|
|
justify: "end",
|
|
children: e.jsx(w, {
|
|
disabled: !i,
|
|
variant: "default",
|
|
onClick: () => g(),
|
|
children: "Добавить"
|
|
})
|
|
}),
|
|
enableRowActions: !0,
|
|
renderRowActions: ({row: t}) => e.jsxs(b, {
|
|
gap: "md",
|
|
children: [e.jsx(j, {
|
|
label: "Редактировать",
|
|
children: e.jsx(m, {
|
|
onClick: () => k(t.original),
|
|
variant: "default",
|
|
children: e.jsx(E, {})
|
|
})
|
|
}), e.jsx(j, {
|
|
label: "Удалить",
|
|
children: e.jsx(m, {
|
|
onClick: () => x(t.original),
|
|
variant: "default",
|
|
children: e.jsx(q, {})
|
|
})
|
|
}), e.jsx(j, {
|
|
label: "Синхронизировать",
|
|
children: e.jsx(m, {
|
|
onClick: () => d && d(t.original),
|
|
variant: "default",
|
|
children: e.jsx(N, {})
|
|
})
|
|
})]
|
|
})
|
|
}
|
|
})
|
|
}
|
|
, U = () => {
|
|
const s = z();
|
|
return e.jsxs("div", {
|
|
className: y.container,
|
|
children: [e.jsx(M, {
|
|
children: e.jsx("div", {
|
|
className: y["top-panel"],
|
|
children: e.jsx(D, {
|
|
placeholder: "Выберите клиента",
|
|
onChange: s.setClient
|
|
})
|
|
})
|
|
}), e.jsx(M, {
|
|
children: e.jsx(e.Fragment, {
|
|
children: e.jsx(L, {
|
|
...s
|
|
})
|
|
})
|
|
})]
|
|
})
|
|
}
|
|
, W = F("/marketplaces")({
|
|
component: U
|
|
});
|
|
export {W as Route};
|