import { AssetLevelEnum } from '@bit-ui-libs/common';
import { useQuery } from '@tanstack/react-query';
import { useMemo } from 'react';
import ContentLoader, { Rect } from 'react-content-loader/native';
import { useTranslation } from 'react-i18next';
import { Linking, ScrollView, View } from 'react-native';
import { Button, Text } from '../../../components';
import { PUBLIC_TOKEN_GRADING_URL, tw } from '../../../core';
import { BottomModal } from '../../../layouts';
import { useChainService, useServicesStore } from '../../../stores';
import { createModalStore } from '../../../utils';
import { BeingIdLevel, DeviceLevel } from '../../user';
import { TokenLevel } from './TokenLevel';
export const useTokenLevelsModal = createModalStore();
interface TokenLevelsModalProps {
eventId: string;
onClose?: () => void;
}
export function TokenLevelsModal(props: TokenLevelsModalProps) {
const { eventId, onClose } = props;
// const logger = useLogger({ namespace: 'TokenLevelsModal' });
const { t } = useTranslation();
const chainService = useChainService();
const userService = useServicesStore((s) => s.endUser);
const { visible, hide } = useTokenLevelsModal();
const contentLoader = useMemo(
() => (
),
[]
);
const { data, isLoading } = useQuery({
queryKey: ['token-levels', eventId],
queryFn: async () => {
// logger.debug('Getting event data for token, eventId:', eventId);
const event = await chainService.getEvent(eventId);
const asset = await chainService.getDetailsByEvent(eventId);
const owner = await userService.getBeingId(asset.ownerId);
return {
beingIdLevel: owner.level,
hardwareLevel: event.device.hardwareLevel,
assetLevel: asset.level,
};
},
enabled: !!eventId,
});
const levels: Record = t('collection.tokenLevel', { returnObjects: true });
return (
Bio-ID Level
{isLoading ? contentLoader : }
Hardware Level
{isLoading ? contentLoader : }
Asset Levels
{(Object.keys(levels) as AssetLevelEnum[]).map((level) => (
{t(`collection.tokenLevel.${level}`)}
))}
);
}