Browse Source

make a confirmation for contact visibility

starred-projects
Trent Larson 11 months ago
parent
commit
ec6175a550
  1. 112
      src/views/ContactsView.vue

112
src/views/ContactsView.vue

@ -118,7 +118,7 @@
<div v-if="activeDid"> <div v-if="activeDid">
<button <button
v-if="contact.seesMe" v-if="contact.seesMe"
class="text-sm uppercase bg-slate-500 text-white px-2 py-1.5 rounded-md" class="text-sm uppercase bg-slate-500 text-white mx-0.5 my-0.5 px-2 py-1.5 rounded-md"
@click="setVisibility(contact, false, true)" @click="setVisibility(contact, false, true)"
title="They can see you" title="They can see you"
> >
@ -126,14 +126,14 @@
</button> </button>
<button <button
v-else v-else
class="text-sm uppercase bg-slate-500 text-white px-2 py-1.5 rounded-md" class="text-sm uppercase bg-slate-500 text-white mx-0.5 my-0.5 px-2 py-1.5 rounded-md"
@click="setVisibility(contact, true, true)" @click="setVisibility(contact, true, true)"
title="They cannot see you" title="They cannot see you"
> >
<fa icon="eye-slash" class="fa-fw" /> <fa icon="eye-slash" class="fa-fw" />
</button> </button>
<button <button
class="text-sm uppercase bg-slate-500 text-white px-2 py-1.5 rounded-md" class="text-sm uppercase bg-slate-500 text-white mx-0.5 my-0.5 px-2 py-1.5 rounded-md"
@click="checkVisibility(contact)" @click="checkVisibility(contact)"
title="Check Visibility" title="Check Visibility"
v-if="activeDid" v-if="activeDid"
@ -571,17 +571,7 @@ export default class ContactsView extends Vue {
} else { } else {
addedMessage = newContact.name + " was added."; addedMessage = newContact.name + " was added.";
} }
this.$notify(
{
group: "alert",
type: "success",
title: "Contact Added",
text: addedMessage,
},
5000,
);
if (this.isRegistered) { if (this.isRegistered) {
// putting this last so that it shows on the top
this.$notify( this.$notify(
{ {
group: "alert", group: "alert",
@ -595,6 +585,15 @@ export default class ContactsView extends Vue {
-1, -1,
); );
} }
this.$notify(
{
group: "alert",
type: "success",
title: "Contact Added",
text: addedMessage,
},
5000,
);
}) })
.catch((err) => { .catch((err) => {
console.error("Error when adding contact to storage:", err); console.error("Error when adding contact to storage:", err);
@ -754,63 +753,70 @@ export default class ContactsView extends Vue {
visibility: boolean, visibility: boolean,
showSuccessAlert: boolean, showSuccessAlert: boolean,
) { ) {
const url = const visibilityPrompt =
this.apiServer + showSuccessAlert &&
"/api/report/" + (visibility
(visibility ? "canSeeMe" : "cannotSeeMe"); ? "Are you sure you want to make your activity visible to them?"
const identity = await this.getIdentity(this.activeDid); : "Are you sure you want to hide all your activity from them?");
const headers = await this.getHeaders(identity); if (visibilityPrompt && confirm(visibilityPrompt)) {
const payload = JSON.stringify({ did: contact.did }); const url =
this.apiServer +
"/api/report/" +
(visibility ? "canSeeMe" : "cannotSeeMe");
const identity = await this.getIdentity(this.activeDid);
const headers = await this.getHeaders(identity);
const payload = JSON.stringify({ did: contact.did });
try { try {
const resp = await this.axios.post(url, payload, { headers }); const resp = await this.axios.post(url, payload, { headers });
if (resp.status === 200) { if (resp.status === 200) {
if (showSuccessAlert) { if (showSuccessAlert) {
this.$notify(
{
group: "alert",
type: "success",
title: "Visibility Set",
text:
this.nameForDid(this.contacts, contact.did) +
" can " +
(visibility ? "" : "not ") +
"see your activity.",
},
-1,
);
}
contact.seesMe = visibility;
db.contacts.update(contact.did, { seesMe: visibility });
} else {
console.error(
"Got some bad server response when setting visibility: ",
resp.status,
resp,
);
const message =
resp.data.error?.message || "Got some error setting visibility.";
this.$notify( this.$notify(
{ {
group: "alert", group: "alert",
type: "success", type: "danger",
title: "Visibility Set", title: "Error Setting Visibility",
text: text: message,
this.nameForDid(this.contacts, contact.did) +
" can " +
(visibility ? "" : "not ") +
"see your activity.",
}, },
-1, -1,
); );
} }
contact.seesMe = visibility; } catch (err) {
db.contacts.update(contact.did, { seesMe: visibility }); console.error("Got some error when setting visibility:", err);
} else {
console.error(
"Got some bad server response when setting visibility: ",
resp.status,
resp,
);
const message =
resp.data.error?.message || "Got some error setting visibility.";
this.$notify( this.$notify(
{ {
group: "alert", group: "alert",
type: "danger", type: "danger",
title: "Error Setting Visibility", title: "Error Setting Visibility",
text: message, text: "Check connectivity and try again.",
}, },
-1, -1,
); );
} }
} catch (err) {
console.error("Got some error when setting visibility:", err);
this.$notify(
{
group: "alert",
type: "danger",
title: "Error Setting Visibility",
text: "Check connectivity and try again.",
},
-1,
);
} }
} }

Loading…
Cancel
Save