First Alpha
This commit is contained in:
@ -31,7 +31,8 @@ export default class EntryComponent extends Component<{ vault: Promise<IVault>,
|
||||
|
||||
private toVault() {
|
||||
// history.back()
|
||||
Navigation.setPage("/vault", { id: this.vault.id }, { entry: "false" }, true);
|
||||
history.back();
|
||||
// Navigation.setPage("/vault", { id: this.vault.id }, { entry: "false" }, true);
|
||||
}
|
||||
|
||||
async componentWillMount() {
|
||||
@ -128,7 +129,6 @@ export default class EntryComponent extends Component<{ vault: Promise<IVault>,
|
||||
if (this.state.changed) {
|
||||
let modal = new YesNoModal("Really want to quit?");
|
||||
let res = await modal.getResult();
|
||||
modal.close();
|
||||
if (res === true) {
|
||||
this.skip_save = true;
|
||||
this.toVault();
|
||||
@ -138,7 +138,6 @@ export default class EntryComponent extends Component<{ vault: Promise<IVault>,
|
||||
}
|
||||
|
||||
textAreaKeyPress(evt: KeyboardEvent) {
|
||||
console.log(evt);
|
||||
if ((evt.keyCode === 83 || evt.keyCode === 13) && evt.ctrlKey) {
|
||||
evt.preventDefault()
|
||||
this.save();
|
||||
|
@ -3,7 +3,6 @@ import Notes, { IVault, BaseNote } from "../../../notes";
|
||||
import AddButton from "../../AddButton";
|
||||
import Navigation from "../../../navigation";
|
||||
import ArrowLeft from "feather-icons/dist/icons/arrow-left.svg"
|
||||
import MoreVertival from "feather-icons/dist/icons/more-vertical.svg"
|
||||
import ContextMenu from "../../modals/context";
|
||||
import Notifications from "../../../notifications";
|
||||
|
||||
@ -17,7 +16,9 @@ export default class EntryList extends Component<{ vault: Promise<IVault> }, { n
|
||||
}
|
||||
vault: IVault;
|
||||
|
||||
reloadNotes() {
|
||||
reloadNotes(s?: boolean) {
|
||||
if (s)
|
||||
return;
|
||||
return new Promise(yes => this.vault.getAllNotes().then(entries => this.setState({ notes: entries }, yes)));
|
||||
}
|
||||
|
||||
@ -169,7 +170,6 @@ export default class EntryList extends Component<{ vault: Promise<IVault> }, { n
|
||||
<div class="row">
|
||||
<div class="col-sm-12 col-md-8 col-lg-6 col-md-offset-2 col-lg-offset-3">
|
||||
<div class="card fluid">
|
||||
<h1 class="section double-padded">Notes: </h1>
|
||||
<div class="section">
|
||||
{elms}
|
||||
</div>
|
||||
|
@ -7,6 +7,7 @@ import EntryList from "./EntryList";
|
||||
|
||||
import "./vault.scss"
|
||||
|
||||
|
||||
export interface VaultProps {
|
||||
state: { id: string };
|
||||
hidden: { entry: string, id: string, note: string };
|
||||
@ -21,10 +22,19 @@ export default class VaultPage extends Page<VaultProps, { entries: BaseNote[] }>
|
||||
|
||||
async componentWillMount() {
|
||||
this.vault = Notes.getVault(this.props.state.id, Notes.getVaultKey(this.props.state.id))
|
||||
|
||||
this.vault.then(vlt => {
|
||||
window.debug.activeVault = vlt;
|
||||
window.debug.createNotes = (cnt = 10) => {
|
||||
for (let i = 0; i < cnt; i++) {
|
||||
let nt = vlt.newNote();
|
||||
nt.__value = `Random Note ${i}\ With some Content ${i}`;
|
||||
vlt.saveNote(nt);
|
||||
}
|
||||
}
|
||||
})
|
||||
this.vault.catch(err => {
|
||||
Navigation.setPage("/")
|
||||
})
|
||||
});
|
||||
}
|
||||
|
||||
render() {
|
||||
|
@ -24,7 +24,9 @@ export default class VaultsPage extends Page<VaultsProps, { vaults: VaultList, m
|
||||
this.updateVaults = this.updateVaults.bind(this);
|
||||
}
|
||||
|
||||
updateVaults() {
|
||||
updateVaults(s?: boolean) {
|
||||
if (s)
|
||||
return;
|
||||
return new Promise(yes => {
|
||||
Notes.getVaults().then(vaults => this.setState({ vaults }, yes))
|
||||
})
|
||||
@ -43,9 +45,11 @@ export default class VaultsPage extends Page<VaultsProps, { vaults: VaultList, m
|
||||
let inp_mod = new InputModal("Enter password for " + vault.name, "Password", "password");
|
||||
let key = undefined;
|
||||
while (true) {
|
||||
let value = await inp_mod.getResult();
|
||||
// inp_mod.show();
|
||||
let value = await inp_mod.getResult(false);
|
||||
if (value === null) {
|
||||
inp_mod.close();
|
||||
console.log("Value is null")
|
||||
inp_mod.close()
|
||||
return false;
|
||||
} else {
|
||||
key = Notes.passwordToKey(value);
|
||||
@ -57,13 +61,12 @@ export default class VaultsPage extends Page<VaultsProps, { vaults: VaultList, m
|
||||
}
|
||||
}
|
||||
}
|
||||
inp_mod.close();
|
||||
inp_mod.close()
|
||||
|
||||
let perm = false;
|
||||
if (permanent) {
|
||||
let save_modal = new YesNoModal("Save permanent?");
|
||||
let res = await save_modal.getResult();
|
||||
save_modal.close();
|
||||
if (res === undefined) {
|
||||
res = false;
|
||||
}
|
||||
@ -101,19 +104,16 @@ export default class VaultsPage extends Page<VaultsProps, { vaults: VaultList, m
|
||||
async addButtonClick() {
|
||||
let name_modal = new InputModal("Enter new name", "Name", "text");
|
||||
let name = await name_modal.getResult();
|
||||
name_modal.close();
|
||||
if (name === null) return;
|
||||
|
||||
let encrypted_modal = new YesNoModal("Encrypt?");
|
||||
let encrypted = encrypted_modal.getResult();
|
||||
encrypted_modal.close();
|
||||
if (encrypted === null) return;
|
||||
|
||||
let password;
|
||||
if (encrypted) {
|
||||
let password_modal = new InputModal("Enter new password", "Password", "password");
|
||||
password = await password_modal.getResult();
|
||||
password_modal.close();
|
||||
if (password === null) return;
|
||||
}
|
||||
|
||||
@ -127,11 +127,6 @@ export default class VaultsPage extends Page<VaultsProps, { vaults: VaultList, m
|
||||
|
||||
onContext(evt: MouseEvent, vault: { name: string, encrypted: boolean, id: string }) {
|
||||
evt.preventDefault();
|
||||
console.log("Context", evt);
|
||||
|
||||
// let context = <div style={{ position: "fixed", left: evt.pageX, top: evt.pageY, zIndex: 10 }}>
|
||||
// <button>Action 1</button>
|
||||
// </div>
|
||||
|
||||
const close = () => {
|
||||
window.removeEventListener("click", close);
|
||||
@ -142,7 +137,6 @@ export default class VaultsPage extends Page<VaultsProps, { vaults: VaultList, m
|
||||
let deleteb = <button onClick={async () => {
|
||||
let delete_modal = new YesNoModal("Delete Vault? Cannot be undone!");
|
||||
let result = await delete_modal.getResult();
|
||||
delete_modal.close();
|
||||
if (result) {
|
||||
Notes.deleteVault(vault.id).then(() => {
|
||||
this.updateVaults();
|
||||
@ -157,7 +151,10 @@ export default class VaultsPage extends Page<VaultsProps, { vaults: VaultList, m
|
||||
|
||||
let delete_key;
|
||||
if (Notes.getVaultKey(vault.id)) {
|
||||
delete_key = <button onClick={() => { Notes.forgetVaultKey(vault.id); }}>
|
||||
delete_key = <button onClick={() => {
|
||||
Notes.forgetVaultKey(vault.id);
|
||||
Notifications.sendSuccess("Forgot key!")
|
||||
}}>
|
||||
forget password
|
||||
</button>;
|
||||
}
|
||||
@ -219,14 +216,16 @@ export default class VaultsPage extends Page<VaultsProps, { vaults: VaultList, m
|
||||
return <div style={{ marginTop: "-12px", paddingTop: "12px" }} >
|
||||
{this.state.modal}
|
||||
{this.state.context}
|
||||
<header>
|
||||
<span></span>
|
||||
<h1 style="display:inline" class="button header_title" onClick={() => Navigation.setPage("/")}>Your vaults:</h1>
|
||||
<span></span>
|
||||
</header>
|
||||
<AddButton onClick={() => this.addButtonClick()} />
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-sm-12 col-md-8 col-lg-6 col-md-offset-2 col-lg-offset-3">
|
||||
<div class="card fluid">
|
||||
|
||||
<h1 class="section double-padded">Your vaults:</h1>
|
||||
|
||||
<div class="section">
|
||||
{elms}
|
||||
</div>
|
||||
|
Reference in New Issue
Block a user