Skip to content

Commit 82bfe02

Browse files
authored
Merge pull request #687 from enkryptcom/fix/rate
fix: rate popup
2 parents 66fd3c2 + c14a858 commit 82bfe02

1 file changed

Lines changed: 13 additions & 9 deletions

File tree

  • packages/extension/src/libs/rate-state

packages/extension/src/libs/rate-state/index.ts

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ export default class RateState {
2424
StorageKeys.rateInfo,
2525
);
2626
const now = Date.now();
27-
const popupTime = Date.now() + POPUP_TIME;
27+
const popupTime = now + POPUP_TIME;
2828

2929
/**
3030
* Case 1: if the user has already been asked after activity
@@ -33,22 +33,24 @@ export default class RateState {
3333
* Case 2: if the user has not rated (this means that the user got asked after activity)
3434
* - askedAfterActivity is already true
3535
* - set popupTime to now + 30 days
36+
* - set true if user rates it, if feedback, reset the timer
3637
* Case 3: if the user has already rated
3738
* - always return false
3839
* Case 4: if no state exists
3940
* - create a new state with askedAfterActivity = false
4041
* - set popupTime to now + 30 days
41-
* - return immediate
42+
* - return immediate (should be false at this point)
4243
*/
4344

4445
if (state) {
4546
if (!state.askedAfterActivity) {
4647
state.askedAfterActivity = true;
48+
state.popupTime = popupTime;
4749

4850
await this.storage.set(StorageKeys.rateInfo, state);
4951
return true;
5052
}
51-
if (!state.alreadyRated) {
53+
else if (!state.alreadyRated) {
5254
if (state.popupTime < now) {
5355
state.popupTime = popupTime;
5456

@@ -58,17 +60,15 @@ export default class RateState {
5860
} else {
5961
return false;
6062
}
61-
62-
if (immediate) return false
6363
}
6464

6565
const newState: IState = {
6666
popupTime,
6767
alreadyRated: false,
68-
askedAfterActivity: immediate,
68+
askedAfterActivity: false,
6969
};
7070

71-
this.storage.set(StorageKeys.rateInfo, newState);
71+
await this.storage.set(StorageKeys.rateInfo, newState);
7272
return immediate;
7373
}
7474

@@ -95,11 +95,15 @@ export default class RateState {
9595
}
9696

9797
async setRated(): Promise<void> {
98-
const state: IState = {
98+
const state: IState | undefined = await this.storage.get(
99+
StorageKeys.rateInfo,
100+
);
101+
const newState: IState = {
99102
alreadyRated: true,
100103
popupTime: 0,
104+
askedAfterActivity: state?.askedAfterActivity || true,
101105
};
102106

103-
await this.storage.set(StorageKeys.rateInfo, state);
107+
await this.storage.set(StorageKeys.rateInfo, newState);
104108
}
105109
}

0 commit comments

Comments
 (0)