1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-02-04 00:18:01 +01:00

feat: set completion flag upon submitting form

This commit is contained in:
Thomas Heartman 2022-02-28 23:59:59 +01:00
parent 44cac1e7d2
commit e12aa94695

View File

@ -11,7 +11,7 @@ const clearedData = {
comment: undefined, comment: undefined,
customerType: undefined, customerType: undefined,
}, },
userClosed: false, closedOrCompleted: false,
}; };
const localstorageKey = 'user-feedback-v1'; const localstorageKey = 'user-feedback-v1';
@ -27,9 +27,12 @@ const populateData = (initialData) => {
const userFeedbackLog = getUserDataRecord(); const userFeedbackLog = getUserDataRecord();
if (userFeedbackLog) { if (userFeedbackLog) {
const mostRecent = Math.max(...Object.keys(userFeedbackLog)); const mostRecentTimestamp = Math.max(
...Object.keys(userFeedbackLog),
);
const mostRecent = userFeedbackLog[mostRecentTimestamp];
if (!mostRecent.closedOrCompleted) { if (!mostRecent.closedOrCompleted) {
return userFeedbackLog[mostRecent]; return mostRecent;
} }
} }
@ -69,9 +72,11 @@ const storeData = (data) => {
const stateReducer = (state, message) => { const stateReducer = (state, message) => {
switch (message.kind) { switch (message.kind) {
case 'close': case 'close':
return { ...state, userClosed: true }; return { ...state, closedOrCompleted: true };
case 'completed':
return { ...state, closedOrCompleted: true };
case 'reset': case 'reset':
return { ...populateData(clearedData), userClosed: false }; return { ...populateData(clearedData), closedOrCompleted: false };
case 'set score': case 'set score':
return { return {
...state, ...state,
@ -143,6 +148,7 @@ export const FeedbackWrapper = ({ seedData, open }) => {
.catch((e) => .catch((e) =>
console.error('Oh, no! The feedback registration failed:', e), console.error('Oh, no! The feedback registration failed:', e),
); );
dispatch({ kind: 'completed' });
stepForward(); stepForward();
}; };
@ -405,7 +411,7 @@ export const FeedbackWrapper = ({ seedData, open }) => {
onClick={() => { onClick={() => {
setFeedbackIsOpen(true); setFeedbackIsOpen(true);
setManuallyOpened(true); setManuallyOpened(true);
if (state.userClosed) { if (state.closedOrCompleted) {
dispatch({ kind: 'reset' }); dispatch({ kind: 'reset' });
} }
}} }}