1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-24 12:58:34 +00:00

Feat metadata invalid property (#7268)

* feat: metadata details display invalid property

* feat: optimize code

---------

Co-authored-by: 杨国璇 <ygx@Hello-word.local>
This commit is contained in:
杨国璇
2024-12-27 11:24:07 +08:00
committed by GitHub
parent d85dcea40e
commit bef98588f7
3 changed files with 15 additions and 11 deletions

View File

@@ -5,7 +5,7 @@ import DetailItem from '../../../components/dirent-detail/detail-item';
import { Utils } from '../../../utils/utils'; import { Utils } from '../../../utils/utils';
import { getCellValueByColumn, getFileNameFromRecord } from '../../utils/cell'; import { getCellValueByColumn, getFileNameFromRecord } from '../../utils/cell';
import { gettext } from '../../../utils/constants'; import { gettext } from '../../../utils/constants';
import { PRIVATE_COLUMN_KEY } from '../../constants'; import { PRIVATE_COLUMN_KEY, IMAGE_PRIVATE_COLUMN_KEYS } from '../../constants';
import Location from './location'; import Location from './location';
import { useMetadataDetails } from '../../hooks'; import { useMetadataDetails } from '../../hooks';
import { checkIsDir } from '../../utils/row'; import { checkIsDir } from '../../utils/row';
@@ -24,25 +24,23 @@ const MetadataDetails = () => {
if (!record._id) return null; if (!record._id) return null;
const fileName = getFileNameFromRecord(record); const fileName = getFileNameFromRecord(record);
const isImage = record && (Utils.imageCheck(fileName) || Utils.videoCheck(fileName)); const isImage = Utils.imageCheck(fileName) || Utils.videoCheck(fileName);
const isDir = record && checkIsDir(record); const isDir = checkIsDir(record);
return ( return (
<> <>
{displayColumns.map(field => { {displayColumns.map(field => {
if (field.key === PRIVATE_COLUMN_KEY.LOCATION) { const value = getCellValueByColumn(record, field);
if (!isImage) return null; if (field.key === PRIVATE_COLUMN_KEY.LOCATION && isImage && value) {
return (<Location key={field.key} position={getCellValueByColumn(record, field)} />); return (<Location key={field.key} position={value} />);
} }
if (field.key === PRIVATE_COLUMN_KEY.TAGS && isDir) return null;
let canEdit = canModifyRecord && field.editable; let canEdit = canModifyRecord && field.editable;
if (!isImage && canEdit && field.key === PRIVATE_COLUMN_KEY.CAPTURE_TIME) { if (!isImage && IMAGE_PRIVATE_COLUMN_KEYS.includes(field.key)) {
canEdit = false;
} else if (field.key === PRIVATE_COLUMN_KEY.TAGS && isDir) {
canEdit = false; canEdit = false;
} }
const value = getCellValueByColumn(record, field);
return ( return (
<DetailItem key={field.key} field={field} readonly={!canEdit}> <DetailItem key={field.key} field={field} readonly={!canEdit}>
{canEdit ? ( {canEdit ? (

View File

@@ -37,6 +37,7 @@ export {
EDITABLE_PRIVATE_COLUMN_KEYS, EDITABLE_PRIVATE_COLUMN_KEYS,
EDITABLE_DATA_PRIVATE_COLUMN_KEYS, EDITABLE_DATA_PRIVATE_COLUMN_KEYS,
DELETABLE_PRIVATE_COLUMN_KEY, DELETABLE_PRIVATE_COLUMN_KEY,
IMAGE_PRIVATE_COLUMN_KEYS,
} from './private'; } from './private';
export { export {

View File

@@ -112,3 +112,8 @@ export const DELETABLE_PRIVATE_COLUMN_KEY = [
PRIVATE_COLUMN_KEY.OWNER, PRIVATE_COLUMN_KEY.OWNER,
PRIVATE_COLUMN_KEY.FILE_RATE, PRIVATE_COLUMN_KEY.FILE_RATE,
]; ];
export const IMAGE_PRIVATE_COLUMN_KEYS = [
PRIVATE_COLUMN_KEY.CAPTURE_TIME,
PRIVATE_COLUMN_KEY.LOCATION,
];