UNPKG

@blocklet/ui-react

Version:

Some useful front-end web components that can be used in Blocklets.

48 lines (47 loc) 1.18 kB
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 };