Thanks to visit codestin.com
Credit goes to github.com

Skip to content
This repository was archived by the owner on May 18, 2026. It is now read-only.

Commit b3ea96c

Browse files
committed
fix: wrong validation for expiration in reverse share modal
1 parent 4a7076a commit b3ea96c

2 files changed

Lines changed: 16 additions & 9 deletions

File tree

backend/src/reverseShare/reverseShare.service.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,11 @@ export class ReverseShareService {
2626
.toDate();
2727

2828
const parsedExpiration = parseRelativeDateToAbsolute(data.shareExpiration);
29+
const maxExpiration = this.config.get("share.maxExpiration");
2930
if (
30-
this.config.get("share.maxExpiration") !== 0 &&
31+
maxExpiration.value !== 0 &&
3132
parsedExpiration >
32-
moment().add(this.config.get("share.maxExpiration"), "hours").toDate()
33+
moment().add(maxExpiration.value, maxExpiration.unit).toDate()
3334
) {
3435
throw new BadRequestException(
3536
"Expiration date exceeds maximum expiration date",

frontend/src/components/share/modals/showCreateReverseShareModal.tsx

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import useTranslate, {
2020
translateOutsideContext,
2121
} from "../../../hooks/useTranslate.hook";
2222
import shareService from "../../../services/share.service";
23+
import { Timespan } from "../../../types/timespan.type";
2324
import { getExpirationPreview } from "../../../utils/date.util";
2425
import toast from "../../../utils/toast.util";
2526
import FileSizeInput from "../../core/FileSizeInput";
@@ -28,7 +29,7 @@ import showCompletedReverseShareModal from "./showCompletedReverseShareModal";
2829
const showCreateReverseShareModal = (
2930
modals: ModalsContextProps,
3031
showSendEmailNotificationOption: boolean,
31-
maxExpirationInHours: number,
32+
maxExpiration: Timespan,
3233
getReverseShares: () => void,
3334
) => {
3435
const t = translateOutsideContext();
@@ -38,7 +39,7 @@ const showCreateReverseShareModal = (
3839
<Body
3940
showSendEmailNotificationOption={showSendEmailNotificationOption}
4041
getReverseShares={getReverseShares}
41-
maxExpirationInHours={maxExpirationInHours}
42+
maxExpiration={maxExpiration}
4243
/>
4344
),
4445
});
@@ -47,12 +48,13 @@ const showCreateReverseShareModal = (
4748
const Body = ({
4849
getReverseShares,
4950
showSendEmailNotificationOption,
50-
maxExpirationInHours,
51+
maxExpiration,
5152
}: {
5253
getReverseShares: () => void;
5354
showSendEmailNotificationOption: boolean;
54-
maxExpirationInHours: number;
55+
maxExpiration: Timespan;
5556
}) => {
57+
console.log(maxExpiration);
5658
const modals = useModals();
5759
const t = useTranslate();
5860

@@ -91,13 +93,17 @@ const Body = ({
9193
) as moment.unitOfTime.DurationConstructor,
9294
);
9395
if (
94-
maxExpirationInHours != 0 &&
95-
expirationDate.isAfter(moment().add(maxExpirationInHours, "hours"))
96+
maxExpiration.value != 0 &&
97+
expirationDate.isAfter(
98+
moment().add(maxExpiration.value, maxExpiration.unit),
99+
)
96100
) {
97101
form.setFieldError(
98102
"expiration_num",
99103
t("upload.modal.expires.error.too-long", {
100-
max: moment.duration(maxExpirationInHours, "hours").humanize(),
104+
max: moment
105+
.duration(maxExpiration.value, maxExpiration.unit)
106+
.humanize(),
101107
}),
102108
);
103109
return;

0 commit comments

Comments
 (0)