Skip to content

Commit 10ce13f

Browse files
authored
Merge pull request #1082 from rintumerin-aot/feature/FWF-5883-add-trial-expiry-notification
Feature/fwf 5883 add trial expiry notification
2 parents 076c802 + 3ee9363 commit 10ce13f

File tree

2 files changed

+43
-4
lines changed

2 files changed

+43
-4
lines changed

forms-flow-nav/src/sidenav/ProfileSettingsModal.jsx

Lines changed: 40 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,14 @@ import { useTranslation } from "react-i18next";
77
import i18n from '../resourceBundles/i18n';
88
import { StorageService } from "@formsflow/service";
99
import { LANGUAGE, MULTITENANCY_ENABLED, USER_LANGUAGE_LIST } from '../constants/constants';
10-
import version from "../../package.json";
1110

1211
export const ProfileSettingsModal = ({ show, onClose, tenant, publish }) => {
1312
const [selectLanguages, setSelectLanguages] = useState([]);
1413
const prevSelectedLang = localStorage.getItem('i18nextLng');
1514
const [selectedLang, setSelectedLang] = useState(prevSelectedLang || LANGUAGE );
15+
const [daysDifference, setDaysDifference] = useState(null);
1616
const { t } = useTranslation();
17+
1718
useEffect(() => {
1819

1920
fetchSelectLanguages((languages) => {
@@ -24,8 +25,31 @@ export const ProfileSettingsModal = ({ show, onClose, tenant, publish }) => {
2425
setSelectLanguages(supportedLanguages.length > 0 ? supportedLanguages : languages);
2526
});
2627

28+
// Calculate remaining days from expiry_dt
29+
try {
30+
const tenantDataStr = StorageService.get("TENANT_DATA");
31+
const expiry_dt = tenantDataStr
32+
? JSON.parse(tenantDataStr)?.expiry_dt
33+
: tenant?.tenantData?.expiry_dt;
34+
35+
if (expiry_dt) {
36+
const expiry = new Date(expiry_dt);
37+
const currentDate = new Date();
38+
currentDate.setHours(0, 0, 0, 0);
39+
expiry.setHours(0, 0, 0, 0);
40+
const timeDifference = expiry.getTime() - currentDate.getTime();
41+
const days = Math.floor(timeDifference / (1000 * 60 * 60 * 24));
42+
setDaysDifference(days);
43+
} else {
44+
setDaysDifference(null);
45+
}
46+
} catch (error) {
47+
console.error("Error calculating days difference:", error);
48+
setDaysDifference(null);
49+
}
50+
2751
}, [tenant]);
28-
52+
2953

3054
const handleLanguageChange = (newLang) => {
3155
setSelectedLang(newLang);
@@ -49,6 +73,9 @@ export const ProfileSettingsModal = ({ show, onClose, tenant, publish }) => {
4973

5074
const selectedLangLabel = selectLanguages.find(lang => lang.name === selectedLang)?.value || selectedLang;
5175

76+
// Get tenantId from tenant prop or StorageService
77+
const tenantId = tenant?.tenantId || StorageService.get("tenantKey");
78+
5279
return (
5380
<Modal
5481
show={show}
@@ -82,8 +109,15 @@ export const ProfileSettingsModal = ({ show, onClose, tenant, publish }) => {
82109
className="mb-3 w-100"
83110
onChange={handleLanguageChange}
84111
/>
85-
<CustomInfo className="note" heading="Note"
86-
content={`You are running version ${version.version} of Formsflow`} />
112+
{tenantId && daysDifference !== null ? (
113+
<CustomInfo
114+
className="note"
115+
heading="Note"
116+
content={
117+
`You are currently using a test instance. The trial period ends in ${daysDifference} days.`
118+
}
119+
/>
120+
) : null}
87121
</Modal.Body>
88122

89123
<Modal.Footer>
@@ -113,7 +147,9 @@ ProfileSettingsModal.propTypes = {
113147
show: PropTypes.bool.isRequired,
114148
onClose: PropTypes.func.isRequired,
115149
tenant: PropTypes.shape({
150+
tenantId: PropTypes.string,
116151
tenantData: PropTypes.shape({
152+
expiry_dt: PropTypes.string,
117153
details: PropTypes.shape({
118154
locale: PropTypes.string,
119155
langList: PropTypes.oneOfType([

forms-flow-theme/scss/v8-scss/_theme.scss

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -331,6 +331,9 @@ $font-tokens: (
331331
&.bpmn-container .bpmn-main-container-editor{
332332
max-height: fit-content!important;
333333
}
334+
&.published-form-layout{
335+
max-height: calc(100vh - 350px) !important;
336+
}
334337
}
335338

336339
&.task-list-body-section {

0 commit comments

Comments
 (0)