Some checks failed
Create issues from TODOs / todos (push) Failing after 3s
Close inactive issues / close-issues (push) Has been cancelled
Deploy GitHub Pages / deploy-preview (push) Has been cancelled
CI / ⚙️ Variables Setup (push) Has been cancelled
CI / ⚙️ Test Guard (push) Has been cancelled
CI / 🚀 Notify external services - draft (push) Has been cancelled
CI / 📦 Build Packages (push) Has been cancelled
CI / 📦 Meteor Build (coverage) (push) Has been cancelled
CI / 📦 Meteor Build (production) (push) Has been cancelled
CI / 🚢 Build Docker (amd64, [account-service presence-service omnichannel-transcript-service], ${{ (github.event_name != 'release' && github.ref != 'refs/heads/develop') && 'coverage' || 'production' }}) (push) Has been cancelled
CI / 🚢 Build Docker (amd64, [account-service presence-service omnichannel-transcript-service], fips) (push) Has been cancelled
CI / 🚢 Build Docker (amd64, [authorization-service queue-worker-service ddp-streamer-service], ${{ (github.event_name != 'release' && github.ref != 'refs/heads/develop') && 'coverage' || 'production' }}) (push) Has been cancelled
CI / 🚢 Build Docker (amd64, [authorization-service queue-worker-service ddp-streamer-service], fips) (push) Has been cancelled
CI / 🚢 Build Docker (amd64, [rocketchat], ${{ (github.event_name != 'release' && github.ref != 'refs/heads/develop') && 'coverage' || 'production' }}) (push) Has been cancelled
CI / 🚢 Build Docker (amd64, [rocketchat], coverage) (push) Has been cancelled
CI / 🚢 Build Docker (amd64, [rocketchat], fips) (push) Has been cancelled
CI / 🚢 Build Docker (arm64, [account-service presence-service omnichannel-transcript-service], ${{ (github.event_name != 'release' && github.ref != 'refs/heads/develop') && 'coverage' || 'production' }}) (push) Has been cancelled
CI / 🚢 Build Docker (arm64, [authorization-service queue-worker-service ddp-streamer-service], ${{ (github.event_name != 'release' && github.ref != 'refs/heads/develop') && 'coverage' || 'production' }}) (push) Has been cancelled
CI / 🚢 Build Docker (arm64, [rocketchat], ${{ (github.event_name != 'release' && github.ref != 'refs/heads/develop') && 'coverage' || 'production' }}) (push) Has been cancelled
CI / 🚢 Build Docker (arm64, [rocketchat], coverage) (push) Has been cancelled
CI / 🚢 Publish Docker Images (ghcr.io) (push) Has been cancelled
CI / 📦 Track Image Sizes (push) Has been cancelled
CI / 🔎 Code Check - Action Lint (push) Has been cancelled
CI / 🔎 Code Check (push) Has been cancelled
CI / 🔨 Test Storybook (push) Has been cancelled
CI / 🔨 Test Unit (push) Has been cancelled
CI / 🔨 Test API (CE) (push) Has been cancelled
CI / 🔨 Test API Livechat (CE) (push) Has been cancelled
CI / 🔨 Test UI (CE) (push) Has been cancelled
CI / 🔨 Test API (EE) (push) Has been cancelled
CI / 🔨 Test API Livechat (EE) (push) Has been cancelled
CI / 🔨 Test API Apps (deno-runtime - EE) (push) Has been cancelled
CI / 🔨 Test UI (EE) (push) Has been cancelled
CI / 🔨 Test API (FIPS) (push) Has been cancelled
CI / 🔨 Test API Livechat (FIPS) (push) Has been cancelled
CI / 🔨 Test UI (FIPS) (push) Has been cancelled
CI / 🔨 Test Federation Matrix (push) Has been cancelled
CI / 📊 Report Coverage (push) Has been cancelled
CI / ✅ Tests Done (push) Has been cancelled
CI / 🚀 Publish build assets (push) Has been cancelled
CI / 🚀 Publish Docker Images (DockerHub) (push) Has been cancelled
CI / 🚀 Notify external services (push) Has been cancelled
CI / Update Version Durability (push) Has been cancelled
Release / Release (push) Has been cancelled
Auto-close duplicate issues / auto-close-duplicates (push) Failing after 1s
Code scanning - action / CodeQL-Build (push) Failing after 2s
71 lines
1.9 KiB
TypeScript
71 lines
1.9 KiB
TypeScript
import type { IRoom } from '@rocket.chat/core-typings';
|
|
import { isRoomFederated } from '@rocket.chat/core-typings';
|
|
import { Header, HeaderContent, HeaderContentRow, HeaderToolbar } from '@rocket.chat/ui-client';
|
|
import type { ReactNode } from 'react';
|
|
import { Suspense } from 'react';
|
|
import { useTranslation } from 'react-i18next';
|
|
|
|
import FederatedRoomOriginServer from './FederatedRoomOriginServer';
|
|
import ParentRoom from './ParentRoom';
|
|
import RoomMemberStatus from './RoomMemberStatus';
|
|
import RoomTitle from './RoomTitle';
|
|
import RoomToolbox from './RoomToolbox';
|
|
import RoomTopic from './RoomTopic';
|
|
import Encrypted from './icons/Encrypted';
|
|
import RoomGroupingMenu from './icons/RoomGroupingMenu';
|
|
import Translate from './icons/Translate';
|
|
|
|
export type RoomHeaderProps = {
|
|
room: IRoom;
|
|
slots?: {
|
|
start?: ReactNode;
|
|
preContent?: ReactNode;
|
|
insideContent?: ReactNode;
|
|
posContent?: ReactNode;
|
|
end?: ReactNode;
|
|
toolbox?: {
|
|
pre?: ReactNode;
|
|
content?: ReactNode;
|
|
pos?: ReactNode;
|
|
hidden?: boolean;
|
|
};
|
|
};
|
|
};
|
|
|
|
const RoomHeader = ({ room, slots = {} }: RoomHeaderProps) => {
|
|
const { t } = useTranslation();
|
|
|
|
return (
|
|
<Header>
|
|
{slots?.start}
|
|
<ParentRoom room={room} />
|
|
{slots?.preContent}
|
|
<HeaderContent>
|
|
<HeaderContentRow>
|
|
<RoomGroupingMenu room={room} />
|
|
<RoomTitle room={room} />
|
|
{isRoomFederated(room) && <FederatedRoomOriginServer room={room} />}
|
|
<Encrypted room={room} />
|
|
<Translate room={room} />
|
|
<RoomTopic room={room} />
|
|
<RoomMemberStatus room={room} />
|
|
{slots?.insideContent}
|
|
</HeaderContentRow>
|
|
</HeaderContent>
|
|
{slots?.posContent}
|
|
{slots.toolbox?.hidden !== true && (
|
|
<Suspense fallback={null}>
|
|
<HeaderToolbar aria-label={t('Toolbox_room_actions')}>
|
|
{slots?.toolbox?.pre}
|
|
{slots?.toolbox?.content || <RoomToolbox />}
|
|
{slots?.toolbox?.pos}
|
|
</HeaderToolbar>
|
|
</Suspense>
|
|
)}
|
|
{slots?.end}
|
|
</Header>
|
|
);
|
|
};
|
|
|
|
export default RoomHeader;
|