Files
boluo-app-main/src/pages/group-v2/index.tsx
2025-10-20 07:58:50 +08:00

63 lines
1.8 KiB
TypeScript

import { useLoad, useShareAppMessage } from '@tarojs/taro';
import { useCallback } from 'react';
import HomePage from '@/components/home-page';
import SearchCity from '@/components/search-city';
import { PageType, PageUrl, RoleType } from '@/constants/app';
import useCityOperators from '@/hooks/use-city-operators';
import useInviteCode from '@/hooks/use-invite-code';
import { switchRoleType } from '@/utils/app';
import { openCustomerServiceChat } from '@/utils/common';
import { getCurrentCityCode } from '@/utils/location';
import { getInviteCodeFromQueryAndUpdate } from '@/utils/partner';
import { getPageQuery } from '@/utils/route';
import { getCommonShareMessage } from '@/utils/share';
import { checkCityCode } from '@/utils/user';
import './index.less';
const PREFIX = 'group-v2-page';
export default function GroupV2() {
const inviteCode = useInviteCode();
const cityOperators = useCityOperators();
useLoad(() => {
switchRoleType(RoleType.Anchor);
const query = getPageQuery();
getInviteCodeFromQueryAndUpdate(query);
});
useShareAppMessage(() =>
getCommonShareMessage({ inviteCode, title: '邀请你加入本地主播求职招聘群', path: PageUrl.GroupV2 })
);
const handleSelectCity = useCallback(
cityCode => {
if (!checkCityCode(cityCode)) {
return;
}
const group = cityOperators.find(g => String(g.cityCode) === cityCode);
if (group) {
openCustomerServiceChat(group.groupLink);
}
},
[cityOperators]
);
return (
<HomePage type={PageType.GroupV2}>
<div className={PREFIX}>
<SearchCity
onSelectCity={handleSelectCity}
currentCity={getCurrentCityCode()}
forGroup
offset={72}
banner="点击城市加入本地主播招聘群,高薪职位早知道"
/>
</div>
</HomePage>
);
}