diff --git a/package-lock.json b/package-lock.json index 40f6f19f..47de9bb9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,8 +8,8 @@ "name": "dtable-ui-component", "version": "6.0.107", "dependencies": { - "@seafile/react-image-lightbox": "4.0.2", - "@seafile/seafile-calendar": "~0.0.32", + "@seafile/react-image-lightbox": "^5.0.4", + "@seafile/seafile-calendar": "^1.0.8", "@seafile/seafile-editor": "^3.0.24", "classnames": "~2.5.*", "dayjs": "1.10.7", @@ -5266,12 +5266,15 @@ "dev": true }, "node_modules/@seafile/react-image-lightbox": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@seafile/react-image-lightbox/-/react-image-lightbox-4.0.2.tgz", - "integrity": "sha512-rQy2X1JDltLE9hLcOQIee6dxW3UwUtWhjgbcOt/aq1BkqWG3mWzGdnHBUmFGfJMvwdbMgEPbDD3yDErBYy6P3w==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@seafile/react-image-lightbox/-/react-image-lightbox-5.0.4.tgz", + "integrity": "sha512-vOOZayfjjMM2UD0O5/4TrHq8KImFf05jmAxErAY9LK/jLP96hVk1UL0mNac27IfQ4LiMsW8Ql32Zxt/EWXn1MQ==", + "license": "MIT", "dependencies": { + "classnames": "^2.3.2", "prop-types": "^15.8.1", - "react-modal": "^3.16.1" + "react-modal": "^3.16.1", + "reactstrap": "^9.2.3" }, "peerDependencies": { "react": "^16.x || ^17.x || ^18.x", @@ -5279,9 +5282,9 @@ } }, "node_modules/@seafile/seafile-calendar": { - "version": "0.0.88899", - "resolved": "https://registry.npmjs.org/@seafile/seafile-calendar/-/seafile-calendar-0.0.88899.tgz", - "integrity": "sha512-Uvv0YWvYd7lihFA0PeGH1c4MwCP67MHRSvO3XHxmPDHT0mZOuXCPAMxye0qk/zcQKk4hxm2tpRCElqse2gIscQ==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@seafile/seafile-calendar/-/seafile-calendar-1.0.8.tgz", + "integrity": "sha512-XQb4SbrEHA3V8R6TUHQ8wki7ssTLX4N6kcI6Pwe8tzPg4Sy1MweiD9owHGvsslgvDdGdpwvluQERFILHv7r6Og==", "dependencies": { "babel-runtime": "6.x", "classnames": "2.x", @@ -5328,22 +5331,6 @@ "xtend": "4.0.2" } }, - "node_modules/@seafile/seafile-editor/node_modules/@seafile/react-image-lightbox": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@seafile/react-image-lightbox/-/react-image-lightbox-5.0.4.tgz", - "integrity": "sha512-vOOZayfjjMM2UD0O5/4TrHq8KImFf05jmAxErAY9LK/jLP96hVk1UL0mNac27IfQ4LiMsW8Ql32Zxt/EWXn1MQ==", - "license": "MIT", - "dependencies": { - "classnames": "^2.3.2", - "prop-types": "^15.8.1", - "react-modal": "^3.16.1", - "reactstrap": "^9.2.3" - }, - "peerDependencies": { - "react": "^16.x || ^17.x || ^18.x", - "react-dom": "^16.x || ^17.x || ^18.x" - } - }, "node_modules/@seafile/seafile-editor/node_modules/classnames": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz", diff --git a/package.json b/package.json index 9b7e5015..9099b93c 100644 --- a/package.json +++ b/package.json @@ -3,8 +3,8 @@ "version": "6.0.107", "main": "./lib/index.js", "dependencies": { - "@seafile/react-image-lightbox": "4.0.2", - "@seafile/seafile-calendar": "~0.0.32", + "@seafile/react-image-lightbox": "^5.0.4", + "@seafile/seafile-calendar": "^1.0.8", "@seafile/seafile-editor": "^3.0.24", "classnames": "~2.5.*", "dayjs": "1.10.7", diff --git a/src/ImagePreviewerLightbox/index.css b/src/ImagePreviewerLightbox/index.css index 49e867b3..5f176698 100644 --- a/src/ImagePreviewerLightbox/index.css +++ b/src/ImagePreviewerLightbox/index.css @@ -4,18 +4,62 @@ } .ril__outer .ril__toolbarItem { - height: 50px; - color: #fff; - display: inline-block; - font-size: 120%; - line-height: 50px; max-width: 100%; - overflow: hidden; + display: flex; + justify-content: center; + align-items: center; padding: 0; + color: #fff; + overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } +.ril__outer .ril__toolbarItem button { + background-size: 20px; + opacity: 1 !important; + width: 100%; +} + +.ril__builtinButton:hover, +.ril__builtinButton:focus { + background-color: #666; + opacity: 1 !important; +} + +.ril__viewOriginalButton { + height: 40px; + width: 178px!important; + -ms-flex-negative: 0; + background: #333; + border-radius: 8px; + color: #fff; + flex-shrink: 0; + font-size: 16px; + font-style: normal; + font-weight: 400; + line-height: normal +} + +.mobile-image-footer-choice .ril__builtinButton { + opacity: 1 !important; +} + +.ril__builtinButton:hover, +.ril__builtinButton:focus { + background-color: #666 !important; + opacity: 1 !important; +} + +.ril__builtinButtonDisabled { + cursor: default; + opacity: 0.5 !important; +} + +.ril__builtinButtonDisabled:hover { + opacity: 0.5 !important; +} + .ril-caption .ril__builtinButton { width: 24px; } diff --git a/src/ImagePreviewerLightbox/index.js b/src/ImagePreviewerLightbox/index.js index 55b37b8f..08512fc4 100644 --- a/src/ImagePreviewerLightbox/index.js +++ b/src/ImagePreviewerLightbox/index.js @@ -27,8 +27,12 @@ function ImagePreviewerLightbox(props) { }); const imagesLength = imageSrcList.length; - const URL = imageSrcList[imageIndex]; + const [currentImageIndex, setCurrentImageIndex] = React.useState(imageIndex || 0); + const URL = imageSrcList[currentImageIndex]; + React.useEffect(() => { + setCurrentImageIndex(imageIndex); + }, [imageIndex]); // Handle URL has special symbol %$ let imageName = ''; @@ -49,17 +53,20 @@ function ImagePreviewerLightbox(props) { const imageTitleDOM = props.imageTitle || ( {imageName} - ({imageIndex + 1}/{imagesLength}) + ({currentImageIndex + 1}/{imagesLength}) ); return ( setCurrentImageIndex(index)} wrapperClassName={classnames('dtable-ui-component', className)} imageTitle={imageTitleDOM} mainSrc={mainSrc} - nextSrc={imageSrcList[(imageIndex + 1) % imagesLength]} - prevSrc={imageSrcList[(imageIndex + imagesLength - 1) % imagesLength]} + nextSrc={imageSrcList[(currentImageIndex + 1) % imagesLength]} + prevSrc={imageSrcList[(currentImageIndex + imagesLength - 1) % imagesLength]} imagePadding={70} viewOriginalImageLabel={getLocale('View_original_image')} enableRotate={canRotateImage} @@ -69,9 +76,14 @@ function ImagePreviewerLightbox(props) { onClickMoveUp={props.moveToPrevRowImage} onClickMoveDown={props.moveToNextRowImage} onViewOriginal={props.onViewOriginal} - onRotateImage={canRotateImage ? (deg) => {onRotateImage(imageIndex, deg);} : null} - onClickDelete={(!readOnly && deleteImage) ? () => {deleteImage(imageIndex, 'previewer');} : null} + onRotateImage={canRotateImage ? (deg) => {onRotateImage(currentImageIndex, deg);} : null} + onClickDelete={(!readOnly && deleteImage) ? () => {deleteImage(currentImageIndex, 'previewer');} : null} onClickDownload={downloadImage ? () => {downloadImage(URL);} : null} + zoomInTip={getLocale('Zoom_in')} + zoomOutTip={getLocale('Zoom_out')} + rotateTip={getLocale('Rotate_image')} + deleteTip={getLocale('Delete_image')} + downloadImageTip={getLocale('Download_image')} /> ); } @@ -89,8 +101,6 @@ ImagePreviewerLightbox.propTypes = { moveToNextRowImage: PropTypes.func, onViewOriginal: PropTypes.func, closeImagePopup: PropTypes.func.isRequired, - moveToPrevImage: PropTypes.func.isRequired, - moveToNextImage: PropTypes.func.isRequired, downloadImage: PropTypes.func, deleteImage: PropTypes.func, onRotateImage: PropTypes.func, diff --git a/src/locales/de.json b/src/locales/de.json index 4f8253f4..c3b07b18 100644 --- a/src/locales/de.json +++ b/src/locales/de.json @@ -9,6 +9,11 @@ "Search_collaborator": "Mitarbeiter suchen", "No_collaborators_available": "Es sind keine Mitarbeiter verfügbar.", "Done": "Erledigt", + "Rotate_image": "Rotate image", + "Delete_image": "delete image", + "Download_image": "Download image", + "Zoom_in": "Zoom in", + "Zoom_out": "Zoom out", "Choose_a_collaborator": "Wählen Sie einen Mitarbeiter", "Please_select": "Auswählen", "Clear": "Leeren", diff --git a/src/locales/en.json b/src/locales/en.json index d91a061e..148a03a8 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -9,6 +9,11 @@ "Search_collaborator": "Search collaborator", "No_collaborators_available": "No collaborators available.", "Done": "Done", + "Rotate_image": "Rotate image", + "Delete_image": "delete image", + "Download_image": "Download image", + "Zoom_in": "Zoom in", + "Zoom_out": "Zoom out", "Choose_a_collaborator": "Choose a collaborator", "Please_select": "Please select", "Clear": "Clear", diff --git a/src/locales/es.json b/src/locales/es.json index c726b749..5c6b00dc 100644 --- a/src/locales/es.json +++ b/src/locales/es.json @@ -9,6 +9,11 @@ "Search_collaborator": "Search collaborator", "No_collaborators_available": "No hay colaboradores disponibles.", "Done": "Hecho", + "Rotate_image": "Rotate image", + "Delete_image": "delete image", + "Download_image": "Download image", + "Zoom_in": "Zoom in", + "Zoom_out": "Zoom out", "Choose_a_collaborator": "Choose a collaborator", "Please_select": "Seleccione", "Clear": "Limpiar", diff --git a/src/locales/fr.json b/src/locales/fr.json index ca2cc026..063af647 100644 --- a/src/locales/fr.json +++ b/src/locales/fr.json @@ -9,6 +9,11 @@ "Search_collaborator": "Rechercher des collaborateurs", "No_collaborators_available": "Aucun collaborateur n'est disponible.", "Done": "Fait", + "Rotate_image": "Rotate image", + "Delete_image": "delete image", + "Download_image": "Download image", + "Zoom_in": "Zoom in", + "Zoom_out": "Zoom out", "Choose_a_collaborator": "Choisissez un collaborateur", "Please_select": "Sélectionner", "Clear": "Effacer", diff --git a/src/locales/pt.json b/src/locales/pt.json index b9aea184..af49307f 100644 --- a/src/locales/pt.json +++ b/src/locales/pt.json @@ -9,6 +9,11 @@ "Search_collaborator": "Encontre um colaborador", "No_collaborators_available": "Nenhum colaborador disponível.", "Done": "Feita", + "Rotate_image": "Rotate image", + "Delete_image": "delete image", + "Download_image": "Download image", + "Zoom_in": "Zoom in", + "Zoom_out": "Zoom out", "Choose_a_collaborator": "Choose a collaborator", "Please_select": "Por favor, selecione", "Clear": "Clara", diff --git a/src/locales/ru.json b/src/locales/ru.json index e8b9093e..b50005c9 100644 --- a/src/locales/ru.json +++ b/src/locales/ru.json @@ -9,6 +9,11 @@ "Search_collaborator": "Поиск сотрудника", "No_collaborators_available": "Нет сотрудников.", "Done": "Выполнено", + "Rotate_image": "Rotate image", + "Delete_image": "delete image", + "Download_image": "Download image", + "Zoom_in": "Zoom in", + "Zoom_out": "Zoom out", "Choose_a_collaborator": "Choose a collaborator", "Please_select": "Please select", "Clear": "Очистить", diff --git a/src/locales/zh-CN.json b/src/locales/zh-CN.json index 96b5387f..2f43d591 100644 --- a/src/locales/zh-CN.json +++ b/src/locales/zh-CN.json @@ -9,6 +9,11 @@ "Search_collaborator": "搜索协作人", "No_collaborators_available": "没有找到协作人", "Done": "完成", + "Rotate_image": "旋转", + "Delete_image": "删除", + "Download_image": "下载", + "Zoom_in": "放大", + "Zoom_out": "缩小", "Choose_a_collaborator": "选择一个协作人", "Please_select": "请选择", "Clear": "清除",