mirror of
https://github.com/aljazceru/mutiny-web.git
synced 2025-12-18 23:04:25 +01:00
Merge pull request #90 from MutinyWallet/activity-design-update
Activity design update
This commit is contained in:
@@ -1,58 +0,0 @@
|
||||
export type TagItem = TextItem | ContactItem;
|
||||
|
||||
export type TextItem = {
|
||||
id: string;
|
||||
kind: "text";
|
||||
name: string;
|
||||
}
|
||||
|
||||
export type ContactItem = {
|
||||
id: string;
|
||||
kind: "contact";
|
||||
name: string;
|
||||
npub?: string;
|
||||
color: Color;
|
||||
}
|
||||
|
||||
export type Color = "blue" | "green" | "red" | "gray"
|
||||
|
||||
export const createUniqueId = () => Math.random().toString(36).substr(2, 9);
|
||||
|
||||
export async function listContacts(): Promise<ContactItem[]> {
|
||||
// get contacts from localstorage
|
||||
const contacts: ContactItem[] = JSON.parse(localStorage.getItem("contacts") || "[]");
|
||||
return contacts;
|
||||
}
|
||||
|
||||
export async function listTexts(): Promise<TextItem[]> {
|
||||
// get texts from localstorage
|
||||
const texts: TextItem[] = JSON.parse(localStorage.getItem("texts") || "[]");
|
||||
return texts;
|
||||
}
|
||||
|
||||
export async function listTags(): Promise<TagItem[]> {
|
||||
const contacts = await listContacts();
|
||||
const texts = await listTexts();
|
||||
return [...contacts, ...texts];
|
||||
}
|
||||
|
||||
export async function addContact(contact: ContactItem): Promise<void> {
|
||||
const contacts = await listContacts();
|
||||
contacts.push(contact);
|
||||
localStorage.setItem("contacts", JSON.stringify(contacts));
|
||||
}
|
||||
|
||||
export async function editContact(contact: ContactItem): Promise<void> {
|
||||
const contacts = await listContacts();
|
||||
const index = contacts.findIndex(c => c.id === contact.id);
|
||||
contacts[index] = contact;
|
||||
localStorage.setItem("contacts", JSON.stringify(contacts));
|
||||
}
|
||||
|
||||
export async function addTextTag(text: TextItem): Promise<void> {
|
||||
const texts = await listTexts();
|
||||
texts.push(text);
|
||||
localStorage.setItem("texts", JSON.stringify(texts));
|
||||
}
|
||||
|
||||
|
||||
@@ -6,6 +6,7 @@ import { createStore } from "solid-js/store";
|
||||
import { MutinyWalletSettingStrings, setupMutinyWallet } from "~/logic/mutinyWalletSetup";
|
||||
import { MutinyBalance, MutinyWallet } from "@mutinywallet/mutiny-wasm";
|
||||
import { ParsedParams } from "~/routes/Scanner";
|
||||
import { MutinyTagItem } from "~/utils/tags";
|
||||
|
||||
const MegaStoreContext = createContext<MegaStore>();
|
||||
|
||||
@@ -23,7 +24,8 @@ export type MegaStore = [{
|
||||
last_sync?: number;
|
||||
price: number
|
||||
has_backed_up: boolean,
|
||||
dismissed_restore_prompt: boolean
|
||||
dismissed_restore_prompt: boolean,
|
||||
wallet_loading: boolean
|
||||
}, {
|
||||
fetchUserStatus(): Promise<UserStatus>;
|
||||
setupMutinyWallet(settings?: MutinyWalletSettingStrings): Promise<void>;
|
||||
@@ -33,6 +35,7 @@ export type MegaStore = [{
|
||||
sync(): Promise<void>;
|
||||
dismissRestorePrompt(): void;
|
||||
setHasBackedUp(): void;
|
||||
listTags(): Promise<MutinyTagItem[]>;
|
||||
}];
|
||||
|
||||
export const Provider: ParentComponent = (props) => {
|
||||
@@ -49,7 +52,8 @@ export const Provider: ParentComponent = (props) => {
|
||||
balance: undefined as MutinyBalance | undefined,
|
||||
last_sync: undefined as number | undefined,
|
||||
is_syncing: false,
|
||||
dismissed_restore_prompt: localStorage.getItem("dismissed_restore_prompt") === "true"
|
||||
dismissed_restore_prompt: localStorage.getItem("dismissed_restore_prompt") === "true",
|
||||
wallet_loading: true
|
||||
});
|
||||
|
||||
const actions = {
|
||||
@@ -81,8 +85,9 @@ export const Provider: ParentComponent = (props) => {
|
||||
},
|
||||
async setupMutinyWallet(settings?: MutinyWalletSettingStrings): Promise<void> {
|
||||
try {
|
||||
setState({ wallet_loading: true })
|
||||
const mutinyWallet = await setupMutinyWallet(settings)
|
||||
setState({ mutiny_wallet: mutinyWallet })
|
||||
setState({ mutiny_wallet: mutinyWallet, wallet_loading: false })
|
||||
} catch (e) {
|
||||
console.error(e)
|
||||
}
|
||||
@@ -126,6 +131,9 @@ export const Provider: ParentComponent = (props) => {
|
||||
dismissRestorePrompt() {
|
||||
localStorage.setItem("dismissed_restore_prompt", "true")
|
||||
setState({ dismissed_restore_prompt: true })
|
||||
},
|
||||
async listTags(): Promise<MutinyTagItem[]> {
|
||||
return state.mutiny_wallet?.get_tag_items() as MutinyTagItem[]
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user