Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion src/ImageEditor/images-previewer/image-preview/index.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
import React, { Fragment } from 'react';
import PropTypes from 'prop-types';
import { getImageThumbnailUrl } from 'dtable-utils';
import DTableToolTip from '../../../DTableToolTip';
import DeleteTip from '../../../DeleteTip';
import { getImageThumbnailUrl, checkImgExists, checkSVGImage, getFileName } from '../../../utils/url';
import { checkImgExists, checkSVGImage, getFileName } from '../../../utils/url';
import { FILE_EDITOR_STATUS, isMobile } from '../../../constants';
import { getLocale } from '../../../lang';

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import React, { Fragment } from 'react';
import PropTypes from 'prop-types';
import { Input } from 'reactstrap';
import { getImageThumbnailUrl } from 'dtable-utils';
import Progress from '../../../../UploadProgress';
import { getImageThumbnailUrl } from '../../../../utils/url';
import FileUploader from '../../../../FileUploader';
import { getLocale } from '../../../../lang';

Expand Down
2 changes: 1 addition & 1 deletion src/ImageFormatter/images-lazy-load.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import React, { useState, useEffect, Fragment } from 'react';
import PropTypes from 'prop-types';
import { getImageThumbnailUrl } from 'dtable-utils';
import Loading from '../Loading';
import { getImageThumbnailUrl } from '../utils/url';

const ImagesLazyLoad = ({ images, server, onImageClick, renderItem, dtableUuid }) => {
const [currentImages, setCurrentImages] = useState(images);
Expand Down
4 changes: 2 additions & 2 deletions src/ImageFormatter/index.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import React, { Fragment } from 'react';
import PropTypes from 'prop-types';
import classnames from 'classnames';
import { getImageThumbnailUrl } from 'dtable-utils';
import ImagesLazyLoad from './images-lazy-load';
import ImagePreviewerLightbox from '../ImagePreviewerLightbox';
import { getImageThumbnailUrl } from '../utils/url';

import './index.css';

Expand Down Expand Up @@ -78,7 +78,7 @@ class ImageFormatter extends React.Component {

if (isSample) {
let item = value[0];
let url = getImageThumbnailUrl(item, server);
let url = getImageThumbnailUrl(item, { server, dtableUuid });
return (
<div className={className}>
<img className="image-item" src={url} alt=""/>
Expand Down
3 changes: 2 additions & 1 deletion src/ImagePreviewerLightbox/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@ import React from 'react';
import PropTypes from 'prop-types';
import classnames from 'classnames';
import Lightbox from '@seafile/react-image-lightbox';
import { getFileSuffix, generateCurrentBaseImageUrl, getImageThumbnailUrl, isCustomAssetUrl, isDigitalSignsUrl, isInternalImg, needUseThumbnailImage } from '../utils/url';
import { getImageThumbnailUrl } from 'dtable-utils';
import { getFileSuffix, generateCurrentBaseImageUrl, isCustomAssetUrl, isDigitalSignsUrl, isInternalImg, needUseThumbnailImage } from '../utils/url';
import { getLocale } from '../lang';

import '@seafile/react-image-lightbox/style.css';
Expand Down
3 changes: 2 additions & 1 deletion src/ImageThumbnail/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,9 @@ import React from 'react';
import PropTypes from 'prop-types';
import DTableToolTip from '../DTableToolTip';
import classnames from 'classnames';
import { getImageThumbnailUrl } from 'dtable-utils';
import DeleteTip from '../DeleteTip';
import { getImageThumbnailUrl, checkImgExists, checkSVGImage, getFileName } from '../utils/url';
import { checkImgExists, checkSVGImage, getFileName } from '../utils/url';
import { getLocale } from '../lang';
import { isMobile } from '../constants';

Expand Down
22 changes: 1 addition & 21 deletions src/utils/url.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import { getImageThumbnailUrl } from 'dtable-utils';
import { FILEEXT_ICON_MAP, FILEEXT_ICON_URL_MAP } from '../constants/file';

export const isTargetUrl = (target, url) => {
Expand Down Expand Up @@ -78,27 +79,6 @@ export const generateCurrentBaseImageUrl = ({ server, workspaceID, dtableUuid, p
return `${validServer}/workspace/${workspaceID}/asset/${dtableUuid}${partUrl}`;
};

export const getImageThumbnailUrl = (url, { server, dtableUuid, workspaceID, size = 256 } = {}) => {
if (!url || typeof url !== 'string') return '';

if (server && dtableUuid && isCustomAssetUrl(url)) {
const assetUuid = url.slice(url.lastIndexOf('/') + 1, url.lastIndexOf('.'));
return server + '/dtable/' + dtableUuid + '/custom-asset-thumbnail/' + assetUuid + '?size=' + size;
}

if (isAIUrl(url) || checkSVGImage(url) || !isInternalImg(url) || isBase64(url)) return url;

if (server && workspaceID && dtableUuid && isDigitalSignsUrl(url)) {
return generateCurrentBaseImageThumbnailUrl({
server, workspaceID, dtableUuid, size, partUrl: url,
});
}

if (url.includes('/thumbnail/workspace')) return url;

return url.replace('/workspace', '/thumbnail/workspace') + '?size=' + size;
};

export const getFileName = (url) => {
if (!url) return null;
let validUrl = url;
Expand Down
Loading