@blocklet/ui-react
Version:
Some useful front-end web components that can be used in Blocklets.
48 lines (47 loc) • 1.18 kB
JavaScript
import { useState as p, useEffect as F } from "react";
import { useMemoizedFn as n } from "ahooks";
import c from "@arcblock/ux/lib/Toast";
import { getBlockletSDK as U } from "@blocklet/js-sdk";
import { formatAxiosError as u } from "../UserCenter/libs/utils.js";
function _({
userDid: r,
t: a,
isMySelf: e
}) {
const l = U(), [i, f] = p(!1), s = n(async () => {
try {
if (e) {
f(!0);
return;
}
const o = await l.user.isFollowingUser({ userDid: r });
f(o);
} catch (o) {
console.error(o);
}
}), m = n(async (o = r) => {
if (!(e && o === r))
try {
await l.user.followUser({ userDid: o }), c.success(a("profile.follow_success")), s();
} catch (t) {
console.error(t), c.error(u(t));
}
}), w = n(async (o = r) => {
if (!(e && o === r))
try {
await l.user.unfollowUser({ userDid: o }), c.success(a("profile.unfollow_success")), s();
} catch (t) {
console.error(t), c.error(u(t));
}
});
return F(() => {
r && !e && s();
}, [s, r, e]), {
followed: i,
followUser: m,
unfollowUser: w
};
}
export {
_ as default
};