import * as Acct from "calckey-js/built/acct";
import { i18n } from "@/i18n";
import * as os from "@/os";

export async function lookupUser() {
    const { canceled, result } = await os.inputText({
        title: i18n.ts.usernameOrUserId,
    });
    if (canceled) return;

    const show = (user: { id: any }) => {
        os.pageWindow(`/user-info/${user.id}`);
    };

    const usernamePromise = os.api("users/show", Acct.parse(result));
    const idPromise = os.api("users/show", { userId: result });
    let _notFound = false;
    const notFound = () => {
        if (_notFound) {
            os.alert({
                type: "error",
                text: i18n.ts.noSuchUser,
            });
        } else {
            _notFound = true;
        }
    };

    Promise.any([usernamePromise, idPromise])
        .then(show)
        .catch(() => {
            notFound();
        });
}
