@digitransit-component/digitransit-component-favourite-editing-modal 7.0.0 → 8.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/index.cjs +1 -1
- package/lib/index.cjs.map +1 -1
- package/lib/index.development.cjs +152 -153
- package/lib/index.js +144 -143
- package/lib/index.js.map +1 -1
- package/package.json +9 -6
package/lib/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { useState, useRef, useEffect } from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import { useTranslation } from 'react-i18next';
|
|
4
4
|
import { ReactSortable } from 'react-sortablejs';
|
|
@@ -8,6 +8,7 @@ import DialogModal from '@digitransit-component/digitransit-component-dialog-mod
|
|
|
8
8
|
import { FlexColumn, Text, FlexRow } from '@hsl-fi/layout-primitives';
|
|
9
9
|
import Icon from '@digitransit-component/digitransit-component-icon';
|
|
10
10
|
import { createInstance } from 'i18next';
|
|
11
|
+
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
11
12
|
|
|
12
13
|
function getDefaultExportFromCjs (x) {
|
|
13
14
|
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
|
|
@@ -6181,71 +6182,83 @@ function FavouriteListItem({
|
|
|
6181
6182
|
});
|
|
6182
6183
|
const iconId = getIconId(favourite.selectedIconId);
|
|
6183
6184
|
const [name, address] = formatFavouritePlaceLabel(favourite.name, favourite.address);
|
|
6184
|
-
return /*#__PURE__*/
|
|
6185
|
-
className: styles.item
|
|
6186
|
-
|
|
6187
|
-
|
|
6188
|
-
|
|
6189
|
-
|
|
6190
|
-
|
|
6191
|
-
|
|
6192
|
-
|
|
6193
|
-
|
|
6194
|
-
|
|
6195
|
-
|
|
6196
|
-
|
|
6197
|
-
|
|
6198
|
-
|
|
6199
|
-
|
|
6200
|
-
|
|
6201
|
-
|
|
6202
|
-
|
|
6203
|
-
|
|
6204
|
-
|
|
6205
|
-
|
|
6206
|
-
|
|
6207
|
-
|
|
6208
|
-
|
|
6209
|
-
|
|
6210
|
-
|
|
6211
|
-
|
|
6212
|
-
|
|
6213
|
-
|
|
6214
|
-
|
|
6215
|
-
|
|
6216
|
-
|
|
6217
|
-
|
|
6218
|
-
|
|
6219
|
-
|
|
6220
|
-
|
|
6221
|
-
|
|
6222
|
-
|
|
6223
|
-
|
|
6224
|
-
|
|
6225
|
-
|
|
6226
|
-
|
|
6227
|
-
|
|
6228
|
-
|
|
6229
|
-
|
|
6230
|
-
|
|
6231
|
-
|
|
6232
|
-
|
|
6233
|
-
|
|
6234
|
-
|
|
6235
|
-
|
|
6236
|
-
|
|
6237
|
-
|
|
6238
|
-
|
|
6239
|
-
|
|
6240
|
-
|
|
6241
|
-
|
|
6242
|
-
|
|
6243
|
-
|
|
6244
|
-
|
|
6245
|
-
|
|
6246
|
-
|
|
6247
|
-
|
|
6248
|
-
|
|
6185
|
+
return /*#__PURE__*/jsxs("li", {
|
|
6186
|
+
className: styles.item,
|
|
6187
|
+
children: [/*#__PURE__*/jsxs("div", {
|
|
6188
|
+
className: styles.dragHandle,
|
|
6189
|
+
children: [onMoveUp && /*#__PURE__*/jsx("button", {
|
|
6190
|
+
type: "button",
|
|
6191
|
+
className: styles.arrow,
|
|
6192
|
+
"aria-label": t('up', {
|
|
6193
|
+
lng: lang
|
|
6194
|
+
}),
|
|
6195
|
+
onClick: onMoveUp,
|
|
6196
|
+
children: "\u2191"
|
|
6197
|
+
}), onMoveDown && /*#__PURE__*/jsx("button", {
|
|
6198
|
+
type: "button",
|
|
6199
|
+
className: styles.arrow,
|
|
6200
|
+
"aria-label": t('down', {
|
|
6201
|
+
lng: lang
|
|
6202
|
+
}),
|
|
6203
|
+
onClick: onMoveDown,
|
|
6204
|
+
children: "\u2193"
|
|
6205
|
+
}), /*#__PURE__*/jsx("span", {
|
|
6206
|
+
className: styles.ellipsis,
|
|
6207
|
+
children: /*#__PURE__*/jsx(Icon, {
|
|
6208
|
+
img: "ellipsis",
|
|
6209
|
+
color: "currentColor"
|
|
6210
|
+
})
|
|
6211
|
+
}), /*#__PURE__*/jsx("span", {
|
|
6212
|
+
className: styles.placeIcon,
|
|
6213
|
+
children: /*#__PURE__*/jsx(Icon, {
|
|
6214
|
+
img: iconId,
|
|
6215
|
+
color: "currentColor"
|
|
6216
|
+
})
|
|
6217
|
+
})]
|
|
6218
|
+
}), /*#__PURE__*/jsxs(FlexColumn, {
|
|
6219
|
+
className: styles.text,
|
|
6220
|
+
children: [/*#__PURE__*/jsx(Text, {
|
|
6221
|
+
variant: "text-xs-bold",
|
|
6222
|
+
as: "p",
|
|
6223
|
+
className: styles.name,
|
|
6224
|
+
children: name
|
|
6225
|
+
}), /*#__PURE__*/jsx(Text, {
|
|
6226
|
+
variant: "text-xs",
|
|
6227
|
+
as: "p",
|
|
6228
|
+
color: "weak",
|
|
6229
|
+
className: styles.address,
|
|
6230
|
+
children: address
|
|
6231
|
+
})]
|
|
6232
|
+
}), /*#__PURE__*/jsxs(FlexRow, {
|
|
6233
|
+
alignItems: "center",
|
|
6234
|
+
flexShrink: 0,
|
|
6235
|
+
children: [/*#__PURE__*/jsx("button", {
|
|
6236
|
+
type: "button",
|
|
6237
|
+
className: styles.actionButton,
|
|
6238
|
+
"aria-label": t('edit-place-name', {
|
|
6239
|
+
lng: lang,
|
|
6240
|
+
favourite
|
|
6241
|
+
}),
|
|
6242
|
+
onClick: onEdit,
|
|
6243
|
+
children: /*#__PURE__*/jsx(Icon, {
|
|
6244
|
+
img: "edit",
|
|
6245
|
+
color: "currentColor"
|
|
6246
|
+
})
|
|
6247
|
+
}), /*#__PURE__*/jsx("button", {
|
|
6248
|
+
type: "button",
|
|
6249
|
+
className: styles.actionButton,
|
|
6250
|
+
"aria-label": t('delete-place-name', {
|
|
6251
|
+
lng: lang,
|
|
6252
|
+
favourite
|
|
6253
|
+
}),
|
|
6254
|
+
onClick: onDelete,
|
|
6255
|
+
children: /*#__PURE__*/jsx(Icon, {
|
|
6256
|
+
img: "trash",
|
|
6257
|
+
color: "currentColor"
|
|
6258
|
+
})
|
|
6259
|
+
})]
|
|
6260
|
+
})]
|
|
6261
|
+
});
|
|
6249
6262
|
}
|
|
6250
6263
|
process.env.NODE_ENV !== "production" ? FavouriteListItem.propTypes = {
|
|
6251
6264
|
favourite: PropTypes.shape({
|
|
@@ -6260,24 +6273,6 @@ process.env.NODE_ENV !== "production" ? FavouriteListItem.propTypes = {
|
|
|
6260
6273
|
onMoveDown: PropTypes.func
|
|
6261
6274
|
} : void 0;
|
|
6262
6275
|
|
|
6263
|
-
/**
|
|
6264
|
-
* A dialog for reordering, editing and deleting favourite places, built on
|
|
6265
|
-
* the HSL design system's Modal. Colors, typography and the mobile/desktop
|
|
6266
|
-
* layout are handled by the design system, so the dialog follows the active
|
|
6267
|
-
* deployment's theme.
|
|
6268
|
-
*
|
|
6269
|
-
* @example
|
|
6270
|
-
* <FavouriteEditingModal
|
|
6271
|
-
* isModalOpen={modalOpen}
|
|
6272
|
-
* handleClose={handleClose}
|
|
6273
|
-
* favourites={favourites}
|
|
6274
|
-
* updateFavourites={onUpdateFavourites}
|
|
6275
|
-
* deleteFavourite={onDeleteFavourite}
|
|
6276
|
-
* onEditSelected={onEditSelected}
|
|
6277
|
-
* isLoading={false}
|
|
6278
|
-
* lang="fi"
|
|
6279
|
-
* />
|
|
6280
|
-
*/
|
|
6281
6276
|
function FavouriteEditingModal({
|
|
6282
6277
|
isModalOpen,
|
|
6283
6278
|
handleClose,
|
|
@@ -6331,65 +6326,71 @@ function FavouriteEditingModal({
|
|
|
6331
6326
|
}
|
|
6332
6327
|
};
|
|
6333
6328
|
const closeDeleteDialog = () => setSelectedFavourite(null);
|
|
6334
|
-
return /*#__PURE__*/
|
|
6335
|
-
|
|
6336
|
-
|
|
6337
|
-
|
|
6338
|
-
|
|
6339
|
-
|
|
6340
|
-
|
|
6341
|
-
|
|
6342
|
-
|
|
6343
|
-
|
|
6344
|
-
|
|
6345
|
-
|
|
6346
|
-
|
|
6347
|
-
|
|
6348
|
-
|
|
6349
|
-
|
|
6350
|
-
|
|
6351
|
-
|
|
6352
|
-
|
|
6353
|
-
|
|
6354
|
-
|
|
6355
|
-
|
|
6356
|
-
|
|
6357
|
-
|
|
6358
|
-
|
|
6359
|
-
|
|
6360
|
-
|
|
6361
|
-
|
|
6362
|
-
|
|
6363
|
-
|
|
6364
|
-
|
|
6365
|
-
|
|
6366
|
-
|
|
6367
|
-
|
|
6368
|
-
|
|
6369
|
-
|
|
6370
|
-
|
|
6371
|
-
|
|
6372
|
-
|
|
6373
|
-
|
|
6374
|
-
|
|
6375
|
-
|
|
6376
|
-
|
|
6377
|
-
|
|
6378
|
-
|
|
6379
|
-
|
|
6380
|
-
|
|
6381
|
-
|
|
6382
|
-
|
|
6383
|
-
|
|
6384
|
-
|
|
6385
|
-
|
|
6386
|
-
|
|
6387
|
-
|
|
6388
|
-
|
|
6389
|
-
|
|
6390
|
-
|
|
6391
|
-
|
|
6392
|
-
|
|
6329
|
+
return /*#__PURE__*/jsxs(Fragment, {
|
|
6330
|
+
children: [/*#__PURE__*/jsx(DialogModal, {
|
|
6331
|
+
headerText: t('delete-place-header', {
|
|
6332
|
+
lng: lang
|
|
6333
|
+
}),
|
|
6334
|
+
handleClose: () => {
|
|
6335
|
+
closeDeleteDialog();
|
|
6336
|
+
handleClose();
|
|
6337
|
+
},
|
|
6338
|
+
isModalOpen: selectedFavourite !== null,
|
|
6339
|
+
dialogContent: selectedFavourite ? `${selectedFavourite.name}: ${selectedFavourite.address}` : '',
|
|
6340
|
+
primaryButtonText: t('delete', {
|
|
6341
|
+
lng: lang
|
|
6342
|
+
}),
|
|
6343
|
+
primaryButtonOnClick: () => {
|
|
6344
|
+
deleteFavourite(selectedFavourite);
|
|
6345
|
+
closeDeleteDialog();
|
|
6346
|
+
},
|
|
6347
|
+
secondaryButtonText: t('cancel', {
|
|
6348
|
+
lng: lang
|
|
6349
|
+
}),
|
|
6350
|
+
secondaryButtonOnClick: closeDeleteDialog,
|
|
6351
|
+
lang: lang
|
|
6352
|
+
}), /*#__PURE__*/jsx(Modal, {
|
|
6353
|
+
open: isModalOpen && selectedFavourite === null,
|
|
6354
|
+
onOpenChange: open => {
|
|
6355
|
+
if (!open) {
|
|
6356
|
+
closeModal();
|
|
6357
|
+
}
|
|
6358
|
+
},
|
|
6359
|
+
children: /*#__PURE__*/jsx(ModalContent, {
|
|
6360
|
+
lang: lang,
|
|
6361
|
+
title: t('edit-places', {
|
|
6362
|
+
lng: lang
|
|
6363
|
+
}),
|
|
6364
|
+
className: styles.modalContent,
|
|
6365
|
+
"aria-describedby": undefined,
|
|
6366
|
+
children: /*#__PURE__*/jsxs("div", {
|
|
6367
|
+
className: styles.listContainer,
|
|
6368
|
+
children: [/*#__PURE__*/jsx(ReactSortable, {
|
|
6369
|
+
className: styles.list,
|
|
6370
|
+
tag: "ul",
|
|
6371
|
+
list: items,
|
|
6372
|
+
setList: setList,
|
|
6373
|
+
animation: 200,
|
|
6374
|
+
handle: `.${DRAG_HANDLE_CLASS}`,
|
|
6375
|
+
forceFallback: true,
|
|
6376
|
+
ghostClass: styles.ghost,
|
|
6377
|
+
fallbackClass: styles.fallback,
|
|
6378
|
+
children: items.map((favourite, index) => /*#__PURE__*/jsx(FavouriteListItem, {
|
|
6379
|
+
favourite: favourite,
|
|
6380
|
+
lang: lang,
|
|
6381
|
+
onMoveUp: index > 0 ? () => move(index, -1) : null,
|
|
6382
|
+
onMoveDown: index < items.length - 1 ? () => move(index, 1) : null,
|
|
6383
|
+
onEdit: () => onEditSelected(favourite),
|
|
6384
|
+
onDelete: () => setSelectedFavourite(favourite)
|
|
6385
|
+
}, favourite.favouriteId))
|
|
6386
|
+
}), isLoading && /*#__PURE__*/jsx("div", {
|
|
6387
|
+
className: styles.overlay,
|
|
6388
|
+
children: /*#__PURE__*/jsx(Spinner, {})
|
|
6389
|
+
})]
|
|
6390
|
+
})
|
|
6391
|
+
})
|
|
6392
|
+
})]
|
|
6393
|
+
});
|
|
6393
6394
|
}
|
|
6394
6395
|
process.env.NODE_ENV !== "production" ? FavouriteEditingModal.propTypes = {
|
|
6395
6396
|
/** Required. Whether the dialog is open.
|