Making Share Target functional

This commit is contained in:
Fabian
2019-06-03 16:51:11 +02:00
parent 7917a628ef
commit 31d9f99b77
13 changed files with 114 additions and 88 deletions

View File

@ -65,7 +65,7 @@ export class Footer extends Component<{}, { synced: boolean, syncing: boolean }>
Welcome <b>{Notes.name}</b>
</span>
<span style="color: lightgrey;">
v1.1
v1.2
</span>
</footer>
}

View File

@ -1,5 +1,4 @@
import { h, Component } from "preact";
import Notes from "../notes";
import "./notifications.scss"
import Notifications, { MessageType } from "../notifications";
@ -37,11 +36,11 @@ export default class NotificationsComponent extends Component<{}, {
this.setState({ notifications: n });
setTimeout(() => {
this.removeNot(not);
}, 3000);
}, 20000);
}
removeNot(not: { message: string }) {
let n = this.state.notifications.slice(0).filter(e => e !== not);
let n = this.state.notifications.filter(e => e !== not);
this.setState({ notifications: n });
}

View File

@ -0,0 +1,5 @@
import { h } from "preact";
export default function Error404Page() {
return <h1>Page not found!</h1>;
}

View File

@ -6,7 +6,7 @@ import Navigation from "../../../navigation";
export default class SharePage extends Page<{ state: any }, { vault: string }> {
text: string;
componentWillMount() {
let { title, text, url } = Navigation.getQuery() || {} as any;
let { title, text, url } = this.props.state;
let note = "";
if (title) {
note += title + "\n"
@ -24,7 +24,9 @@ export default class SharePage extends Page<{ state: any }, { vault: string }> {
render() {
return <VaultsPage state={undefined} selectVault onSelected={vault => {
Navigation.setPage("/vault", { id: vault }, { entry: "true", note: this.text }, true);
Navigation.setPage("/", undefined, undefined, true);
Navigation.setPage("/vault", { id: vault });
Navigation.setPage("/vault", { id: vault }, { entry: "true", note: this.text });
}} />
}
}

View File

@ -74,17 +74,30 @@ export default class EntryList extends Component<{ vault: Promise<IVault> }, { n
}
}
const deleteNote = async () => {
Notes.delete(note._id).then(() => {
Notifications.sendSuccess("Deleted")
this.rawNotes = this.rawNotes.filter(e => e._id !== note._id);
this.setState({ notes: this.state.notes.filter(e => e._id !== note._id) });
}).catch(err => {
Notifications.sendError(err);
})
}
let share;
if ((window.navigator as any).share) {
share = <button class="uk-button" onClick={() => shareNote()}>
share = <button class="uk-button" onClick={shareNote}>
share
</button>
let context = <ContextMenu event={evt} >
{share}
</ContextMenu>
this.setState({ context });
}
let context = <ContextMenu event={evt} >
{share}
<button class="uk-button" onClick={deleteNote}>delete</button>
</ContextMenu>
this.setState({ context });
return false;
}

View File

@ -218,7 +218,7 @@ export default class VaultsPage extends Page<VaultsProps, { vaults: VaultList, m
{this.state.context}
<header class="uk-background-primary">
<span></span>
<h3 style="display:inline" onClick={() => Navigation.setPage("/")}>Your vaults:</h3>
<h3 style="display:inline" onClick={() => Navigation.setPage("/")}>{this.props.selectVault ? "Select Vault for share" : "Your vaults:"}</h3>
<span></span>
</header>
<AddButton onClick={() => this.addButtonClick()} />