-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathApp-Functions.ts
42 lines (36 loc) · 1.28 KB
/
App-Functions.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import { SubscriptionData } from "./components/common/ContentButtons/SubscribeButton.tsx";
import { store } from "./state/store.ts";
export const getUserName = async () => {
const account = await qortalRequest({
action: "GET_USER_ACCOUNT",
});
const nameData = await qortalRequest({
action: "GET_ACCOUNT_NAMES",
address: account.address,
});
if (nameData?.length > 0) return nameData[0].name;
else return "";
};
export const filterVideosByName = (
subscriptionList: SubscriptionData[],
userName: string
) => {
return subscriptionList.filter(item => {
return item.userName === userName;
});
};
export const subscriptionListFilter = async (reset = true) => {
const filteredSubscriptionList =
store.getState().video.filteredSubscriptionList;
const isFilteredSubscriptionListEmpty = filteredSubscriptionList.length === 0;
if (!reset && !isFilteredSubscriptionListEmpty) {
return filteredSubscriptionList;
}
const subscriptionList = store.getState().persist.subscriptionList;
const filterByUserName =
store.getState().persist.subscriptionListFilter === "currentNameOnly";
const userName = await getUserName();
if (filterByUserName && userName) {
return filterVideosByName(subscriptionList, userName);
} else return subscriptionList;
};