diff --git a/components/app-wrapper.js b/components/app-wrapper.js
index 2769da4..616ad0a 100644
--- a/components/app-wrapper.js
+++ b/components/app-wrapper.js
@@ -83,7 +83,7 @@ export default class AppWrapper extends Component {
} else if (shouldShowPasswordPrompt) {
initialView =
} else if (shouldShowApp) {
- initialView =
+ initialView = this.checkDbPasswordSet()} />
}
return (
diff --git a/components/app.js b/components/app.js
index 885c282..082fb28 100644
--- a/components/app.js
+++ b/components/app.js
@@ -53,7 +53,7 @@ class App extends Component {
}
render() {
- const { date, navigation, goBack } = this.props
+ const { date, navigation, goBack, restartApp } = this.props
const { currentPage } = navigation
if (!currentPage) {
@@ -80,7 +80,7 @@ class App extends Component {
return (
-
+
)
diff --git a/components/settings/password/create.js b/components/settings/password/create.js
index b081afc..ba358e5 100644
--- a/components/settings/password/create.js
+++ b/components/settings/password/create.js
@@ -34,7 +34,11 @@ export default class CreatePassword extends Component {
)
} else {
- return
+ return (
+
+ )
}
}
}
diff --git a/components/settings/password/delete.js b/components/settings/password/delete.js
index 8f078d7..593efca 100644
--- a/components/settings/password/delete.js
+++ b/components/settings/password/delete.js
@@ -4,13 +4,12 @@ import PropTypes from 'prop-types'
import Button from '../../common/button'
import ConfirmWithPassword from '../common/confirm-with-password'
-import { changeEncryptionAndRestartApp } from '../../../db'
import labels from '../../../i18n/en/settings'
export default class DeletePassword extends Component {
static propTypes = {
onStartDelete: PropTypes.func,
- onCancelDelete: PropTypes.func
+ onCancelDelete: PropTypes.func,
}
constructor() {
@@ -24,10 +23,6 @@ export default class DeletePassword extends Component {
this.props.onStartDelete()
}
- startDeletePassword = async () => {
- await changeEncryptionAndRestartApp()
- }
-
cancelConfirmationWithPassword = () => {
this.setState({ enteringCurrentPassword: false })
this.props.onCancelDelete()
@@ -39,7 +34,7 @@ export default class DeletePassword extends Component {
if (enteringCurrentPassword) {
return (
)
@@ -51,4 +46,4 @@ export default class DeletePassword extends Component {
)
}
-}
\ No newline at end of file
+}
diff --git a/components/settings/password/enter-new-password.js b/components/settings/password/enter-new-password.js
index 33c4c28..75890f7 100644
--- a/components/settings/password/enter-new-password.js
+++ b/components/settings/password/enter-new-password.js
@@ -6,14 +6,14 @@ import AppText from '../../common/app-text'
import AppTextInput from '../../common/app-text-input'
import Button from '../../common/button'
-import { requestHash, changeEncryptionAndRestartApp } from '../../../db'
+import { requestHash } from '../../../db'
import { Colors, Spacing } from '../../../styles'
import settings from '../../../i18n/en/settings'
const LISTENER_TYPE = 'create-or-change-pw'
export default class EnterNewPassword extends Component {
- constructor() {
+ constructor(props) {
super()
this.state = {
password: '',
@@ -22,13 +22,16 @@ export default class EnterNewPassword extends Component {
}
nodejs.channel.addListener(
LISTENER_TYPE,
- changeEncryptionAndRestartApp,
+ props.changeEncryptionAndRestart,
this
)
}
componentWillUnmount() {
- nodejs.channel.removeListener(LISTENER_TYPE, changeEncryptionAndRestartApp)
+ nodejs.channel.removeListener(
+ LISTENER_TYPE,
+ this.props.changeEncryptionAndRestart
+ )
}
savePassword = () => {
diff --git a/components/settings/password/index.js b/components/settings/password/index.js
index dd480c3..e637cab 100644
--- a/components/settings/password/index.js
+++ b/components/settings/password/index.js
@@ -1,4 +1,9 @@
import React, { Component } from 'react'
+import { connect } from 'react-redux'
+
+import { navigate } from '../../../slices/navigation'
+
+import { changeDbEncryption } from '../../../db'
import AppPage from '../../common/app-page'
import AppText from '../../common/app-text'
@@ -11,7 +16,7 @@ import DeletePassword from './delete'
import { hasEncryptionObservable } from '../../../local-storage'
import labels from '../../../i18n/en/settings'
-export default class PasswordSetting extends Component {
+class PasswordSetting extends Component {
constructor(props) {
super(props)
@@ -38,6 +43,12 @@ export default class PasswordSetting extends Component {
this.setState({ isDeletingPassword: false })
}
+ changeEncryptionAndRestart = async (hash) => {
+ await changeDbEncryption(hash)
+ await this.props.restartApp()
+ this.props.navigate('Home')
+ }
+
render() {
const { isPasswordSet, isChangingPassword, isDeletingPassword } = this.state
@@ -51,12 +62,17 @@ export default class PasswordSetting extends Component {
{isPasswordSet ? explainerEnabled : explainerDisabled}
- {!isPasswordSet && }
+ {!isPasswordSet && (
+
+ )}
{isPasswordSet && !isDeletingPassword && (
)}
@@ -64,6 +80,7 @@ export default class PasswordSetting extends Component {
)}
@@ -71,3 +88,11 @@ export default class PasswordSetting extends Component {
)
}
}
+
+const mapDispatchToProps = (dispatch) => {
+ return {
+ navigate: (page) => dispatch(navigate(page)),
+ }
+}
+
+export default connect(null, mapDispatchToProps)(PasswordSetting)
diff --git a/components/settings/password/update.js b/components/settings/password/update.js
index 270defd..4e0aa15 100644
--- a/components/settings/password/update.js
+++ b/components/settings/password/update.js
@@ -70,7 +70,11 @@ export default class ChangePassword extends Component {
}
if (enteringNewPassword) {
- return
+ return (
+
+ )
}
return (
diff --git a/db/index.js b/db/index.js
index 67f4ca0..06905de 100644
--- a/db/index.js
+++ b/db/index.js
@@ -195,7 +195,7 @@ export function requestHash(type, pw) {
)
}
-export async function changeEncryptionAndRestartApp(hash) {
+export async function changeDbEncryption(hash) {
let key
if (hash) key = hashToInt8Array(hash)
const defaultPath = db.path
@@ -209,7 +209,6 @@ export async function changeEncryptionAndRestartApp(hash) {
db.close()
await fs.unlink(defaultPath)
await fs.moveFile(copyPath, defaultPath)
- restartApp()
}
export function isDbEmpty() {