fix: wrong validation for expiration in reverse share modal
This commit is contained in:
@@ -26,10 +26,11 @@ export class ReverseShareService {
|
|||||||
.toDate();
|
.toDate();
|
||||||
|
|
||||||
const parsedExpiration = parseRelativeDateToAbsolute(data.shareExpiration);
|
const parsedExpiration = parseRelativeDateToAbsolute(data.shareExpiration);
|
||||||
|
const maxExpiration = this.config.get("share.maxExpiration");
|
||||||
if (
|
if (
|
||||||
this.config.get("share.maxExpiration") !== 0 &&
|
maxExpiration.value !== 0 &&
|
||||||
parsedExpiration >
|
parsedExpiration >
|
||||||
moment().add(this.config.get("share.maxExpiration"), "hours").toDate()
|
moment().add(maxExpiration.value, maxExpiration.unit).toDate()
|
||||||
) {
|
) {
|
||||||
throw new BadRequestException(
|
throw new BadRequestException(
|
||||||
"Expiration date exceeds maximum expiration date",
|
"Expiration date exceeds maximum expiration date",
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ import useTranslate, {
|
|||||||
translateOutsideContext,
|
translateOutsideContext,
|
||||||
} from "../../../hooks/useTranslate.hook";
|
} from "../../../hooks/useTranslate.hook";
|
||||||
import shareService from "../../../services/share.service";
|
import shareService from "../../../services/share.service";
|
||||||
|
import { Timespan } from "../../../types/timespan.type";
|
||||||
import { getExpirationPreview } from "../../../utils/date.util";
|
import { getExpirationPreview } from "../../../utils/date.util";
|
||||||
import toast from "../../../utils/toast.util";
|
import toast from "../../../utils/toast.util";
|
||||||
import FileSizeInput from "../../core/FileSizeInput";
|
import FileSizeInput from "../../core/FileSizeInput";
|
||||||
@@ -28,7 +29,7 @@ import showCompletedReverseShareModal from "./showCompletedReverseShareModal";
|
|||||||
const showCreateReverseShareModal = (
|
const showCreateReverseShareModal = (
|
||||||
modals: ModalsContextProps,
|
modals: ModalsContextProps,
|
||||||
showSendEmailNotificationOption: boolean,
|
showSendEmailNotificationOption: boolean,
|
||||||
maxExpirationInHours: number,
|
maxExpiration: Timespan,
|
||||||
getReverseShares: () => void,
|
getReverseShares: () => void,
|
||||||
) => {
|
) => {
|
||||||
const t = translateOutsideContext();
|
const t = translateOutsideContext();
|
||||||
@@ -38,7 +39,7 @@ const showCreateReverseShareModal = (
|
|||||||
<Body
|
<Body
|
||||||
showSendEmailNotificationOption={showSendEmailNotificationOption}
|
showSendEmailNotificationOption={showSendEmailNotificationOption}
|
||||||
getReverseShares={getReverseShares}
|
getReverseShares={getReverseShares}
|
||||||
maxExpirationInHours={maxExpirationInHours}
|
maxExpiration={maxExpiration}
|
||||||
/>
|
/>
|
||||||
),
|
),
|
||||||
});
|
});
|
||||||
@@ -47,12 +48,13 @@ const showCreateReverseShareModal = (
|
|||||||
const Body = ({
|
const Body = ({
|
||||||
getReverseShares,
|
getReverseShares,
|
||||||
showSendEmailNotificationOption,
|
showSendEmailNotificationOption,
|
||||||
maxExpirationInHours,
|
maxExpiration,
|
||||||
}: {
|
}: {
|
||||||
getReverseShares: () => void;
|
getReverseShares: () => void;
|
||||||
showSendEmailNotificationOption: boolean;
|
showSendEmailNotificationOption: boolean;
|
||||||
maxExpirationInHours: number;
|
maxExpiration: Timespan;
|
||||||
}) => {
|
}) => {
|
||||||
|
console.log(maxExpiration);
|
||||||
const modals = useModals();
|
const modals = useModals();
|
||||||
const t = useTranslate();
|
const t = useTranslate();
|
||||||
|
|
||||||
@@ -91,13 +93,17 @@ const Body = ({
|
|||||||
) as moment.unitOfTime.DurationConstructor,
|
) as moment.unitOfTime.DurationConstructor,
|
||||||
);
|
);
|
||||||
if (
|
if (
|
||||||
maxExpirationInHours != 0 &&
|
maxExpiration.value != 0 &&
|
||||||
expirationDate.isAfter(moment().add(maxExpirationInHours, "hours"))
|
expirationDate.isAfter(
|
||||||
|
moment().add(maxExpiration.value, maxExpiration.unit),
|
||||||
|
)
|
||||||
) {
|
) {
|
||||||
form.setFieldError(
|
form.setFieldError(
|
||||||
"expiration_num",
|
"expiration_num",
|
||||||
t("upload.modal.expires.error.too-long", {
|
t("upload.modal.expires.error.too-long", {
|
||||||
max: moment.duration(maxExpirationInHours, "hours").humanize(),
|
max: moment
|
||||||
|
.duration(maxExpiration.value, maxExpiration.unit)
|
||||||
|
.humanize(),
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
return;
|
return;
|
||||||
|
|||||||
Reference in New Issue
Block a user