Skip to content

Commit 2cccdf5

Browse files
committed
add acknowledgement acknowledged storage and status
1 parent bce5a53 commit 2cccdf5

File tree

3 files changed

+30
-1
lines changed

3 files changed

+30
-1
lines changed

source/flux/init.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import {
1111
setLoginCredentials,
1212
validateLoginCredentials,
1313
loadFeedbackStatus,
14+
loadAcknowledgement,
1415
} from './parts/settings'
1516
import {updateBalances, updateCourses} from './parts/sis'
1617

@@ -44,6 +45,7 @@ export async function init(store: {dispatch: any}) {
4445
// kick off the parts that don't care about network
4546
store.dispatch(loadHomescreenOrder())
4647
store.dispatch(loadFeedbackStatus())
48+
store.dispatch(loadAcknowledgement())
4749
loginCredentials(store)
4850

4951
// wait for our first connection check to happen

source/flux/parts/settings.js

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,12 @@ import {
99
clearLoginCredentials,
1010
} from '../../lib/login'
1111

12-
import {setAnalyticsOptOut, getAnalyticsOptOut} from '../../lib/storage'
12+
import {
13+
setAnalyticsOptOut,
14+
getAnalyticsOptOut,
15+
getAcknowledgementStatus,
16+
setAcknowledgementStatus,
17+
} from '../../lib/storage'
1318

1419
import {updateBalances} from './sis'
1520

@@ -25,6 +30,7 @@ export const CREDENTIALS_VALIDATE_FAILURE =
2530
'settings/CREDENTIALS_VALIDATE_FAILURE'
2631
export const SET_FEEDBACK = 'settings/SET_FEEDBACK'
2732
export const CHANGE_THEME = 'settings/CHANGE_THEME'
33+
export const SIS_ALERT_SEEN = 'settings/SIS_ALERT_SEEN'
2834

2935
export async function setFeedbackStatus(feedbackEnabled: boolean) {
3036
await setAnalyticsOptOut(feedbackEnabled)
@@ -35,6 +41,15 @@ export function loadFeedbackStatus() {
3541
return {type: SET_FEEDBACK, payload: getAnalyticsOptOut()}
3642
}
3743

44+
export function loadAcknowledgement() {
45+
return {type: SIS_ALERT_SEEN, payload: getAcknowledgementStatus()}
46+
}
47+
48+
export async function hasSeenAcknowledgement() {
49+
await setAcknowledgementStatus(true)
50+
return {type: SIS_ALERT_SEEN, payload: true}
51+
}
52+
3853
export async function setLoginCredentials(username: string, password: string) {
3954
await saveLoginCredentials(username, password)
4055
return {type: SET_LOGIN_CREDENTIALS, payload: {username, password}}
@@ -155,6 +170,7 @@ const initialSettingsState: SettingsState = {
155170

156171
credentials: initialCredentialsState,
157172
feedbackDisabled: false,
173+
unofficiallyAcknowledged: false,
158174
}
159175

160176
export function settings(
@@ -176,6 +192,9 @@ export function settings(
176192
case SET_FEEDBACK:
177193
return {...state, feedbackDisabled: payload}
178194

195+
case SIS_ALERT_SEEN:
196+
return {...state, unofficiallyAcknowledged: payload}
197+
179198
default:
180199
return state
181200
}

source/lib/storage.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,14 @@ export function getHomescreenOrder(): Promise<string[]> {
3535
return getItem(homescreenOrderKey)
3636
}
3737

38+
const acknowledgementStatusKey = 'settings:ackd'
39+
export function setAcknowledgementStatus(status: boolean) {
40+
return setItem(acknowledgementStatusKey, status)
41+
}
42+
export function getAcknowledgementStatus(): Promise<?boolean> {
43+
return getItem(acknowledgementStatusKey)
44+
}
45+
3846
/// MARK: Credentials
3947

4048
const tokenValidKey = 'credentials:valid'

0 commit comments

Comments
 (0)