Files
rustfs-console/lib/object-lock.js
T
2026-05-14 10:08:38 +08:00

36 lines
1.1 KiB
JavaScript

import dayjs from "dayjs"
export function isObjectLegalHoldEnabled(value) {
if (typeof value === "string") return value === "ON"
return value?.Status === "ON" || value?.LegalHold?.Status === "ON" || value?.ObjectLockLegalHoldStatus === "ON"
}
export function toObjectRetentionInputValue(value) {
return value && dayjs(value).isValid() ? dayjs(value).format("YYYY-MM-DDTHH:mm") : ""
}
export function toObjectRetentionRequestValue(value) {
if (!value) return undefined
const date = dayjs(value)
return date.isValid() ? date.toISOString() : undefined
}
export function getDefaultObjectRetentionDate(now = new Date()) {
return dayjs(now).add(1, "day").second(0).millisecond(0).toISOString()
}
export function getMinimumObjectRetentionDate(now = new Date()) {
return dayjs(now).add(1, "minute").second(0).millisecond(0).toISOString()
}
export function isObjectRetentionDateInFuture(value, now = new Date()) {
const date = dayjs(value)
return date.isValid() && date.isAfter(dayjs(now))
}
export function shouldShowObjectRetentionAction({ canEditRetention, legalHoldEnabled }) {
return Boolean(canEditRetention && legalHoldEnabled)
}