import { Button, Image } from '@tarojs/components'; import { NodesRef } from '@tarojs/taro'; import { Tabs } from '@taroify/core'; import classNames from 'classnames'; import { useCallback, useEffect, useState } from 'react'; import JobManageList, { IJobManageListProps } from '@/components/job-manage-list'; import SafeBottomPadding from '@/components/safe-bottom-padding'; import { PageUrl } from '@/constants/app'; import { ReportEventId } from '@/constants/event'; import { JOB_MANAGE_TABS, JobManageStatus, JobManageType } from '@/constants/job'; import useListHeight, { IUseListHeightProps } from '@/hooks/use-list-height'; import useUserInfo from '@/hooks/use-user-info'; import { logWithPrefix } from '@/utils/common'; import { reportEvent } from '@/utils/event'; import { navigateTo } from '@/utils/route'; import { ensureUserInfo } from '@/utils/user'; import './index.less'; const PREFIX = 'page-certification-manage'; const LIST_CONTAINER_CLASS = `${PREFIX}__list-container`; const BUTTON_CLASS = `${PREFIX}__button`; const SAFE_BOTTOM_PADDING_CLASS = `${PREFIX}__sbpc`; const CALC_LIST_PROPS: IUseListHeightProps = { selectors: [ `.${PREFIX}`, `.${PREFIX} .taroify-tabs__wrap__scroll`, `.${BUTTON_CLASS}`, `.${SAFE_BOTTOM_PADDING_CLASS}`, ], calc: ( rects: [ NodesRef.BoundingClientRectCallbackResult, NodesRef.BoundingClientRectCallbackResult, NodesRef.BoundingClientRectCallbackResult, NodesRef.BoundingClientRectCallbackResult, ] ) => { const [page, tabs, button, safePadding] = rects; return page.height - tabs.height - button.height - safePadding.height - 10; }, }; const log = logWithPrefix(PREFIX); const tab2Status = (tabType: JobManageType) => { switch (tabType) { case JobManageType.Open: return JobManageStatus.Open; case JobManageType.Pending: return JobManageStatus.Pending; case JobManageType.Error: return JobManageStatus.Error; case JobManageType.All: default: return; } }; const EmptyTips = (props: { className?: string; height?: number }) => { const { className, height } = props; return (