import { jsx } from "react/jsx-runtime";
import { useMemo } from "react";
import { useTranslation } from "react-i18next";
import { useAPIClient } from "../api-client/index.mjs";
import { SelectWithTitle } from "../common/index.mjs";
import { useCurrentRoles } from "./CurrentUserProvider.mjs";
const useSwitchRole = ()=>{
    const api = useAPIClient();
    const roles = useCurrentRoles();
    const { t } = useTranslation();
    const result = useMemo(()=>({
            key: 'role',
            eventKey: 'SwitchRole',
            label: /*#__PURE__*/ jsx(SelectWithTitle, {
                title: t('Switch role'),
                fieldNames: {
                    label: 'title',
                    value: 'name'
                },
                options: roles,
                defaultValue: api.auth.role,
                onChange: async (roleName)=>{
                    api.auth.setRole(roleName);
                    await api.resource('users').setDefaultRole({
                        values: {
                            roleName
                        }
                    });
                    location.reload();
                    window.location.reload();
                }
            })
        }), [
        api,
        roles,
        t
    ]);
    if (roles.length <= 1) return null;
    return result;
};
export { useSwitchRole };
