snapshot of https://github.com/RocketChat/Rocket.Chat.git (develop, 2026-09-16; blobs > 131072B omitted)
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 1s
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 1s
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
import { NavBarItem } from '@rocket.chat/fuselage';
|
||||
import type { HTMLAttributes } from 'react';
|
||||
|
||||
import { useOmnichannelContactAction } from './hooks/useOmnichannelContactAction';
|
||||
|
||||
export type NavBarItemOmnichannelContactProps = Omit<HTMLAttributes<HTMLElement>, 'is'>;
|
||||
|
||||
const NavBarItemOmnichannelContact = (props: NavBarItemOmnichannelContactProps) => {
|
||||
const { icon, isPressed, title, handleGoToContactCenter } = useOmnichannelContactAction();
|
||||
|
||||
return (
|
||||
<NavBarItem
|
||||
{...props}
|
||||
icon={icon}
|
||||
title={title}
|
||||
onClick={handleGoToContactCenter}
|
||||
pressed={isPressed}
|
||||
aria-current={isPressed ? 'page' : undefined}
|
||||
/>
|
||||
);
|
||||
};
|
||||
|
||||
export default NavBarItemOmnichannelContact;
|
||||
@@ -0,0 +1,23 @@
|
||||
import { NavBarItem } from '@rocket.chat/fuselage';
|
||||
import type { HTMLAttributes } from 'react';
|
||||
|
||||
import { useOmnichannelLivechatToggle } from './hooks/useOmnichannelLivechatToggle';
|
||||
|
||||
export type NavBarItemOmnichannelLivechatToggleProps = Omit<HTMLAttributes<HTMLElement>, 'is'>;
|
||||
|
||||
const NavBarItemOmnichannelLivechatToggle = (props: NavBarItemOmnichannelLivechatToggleProps) => {
|
||||
const { handleAvailableStatusChange, title, icon, isSuccess } = useOmnichannelLivechatToggle();
|
||||
|
||||
return (
|
||||
<NavBarItem
|
||||
{...props}
|
||||
id='omnichannel-status-toggle'
|
||||
title={title}
|
||||
success={isSuccess}
|
||||
icon={icon}
|
||||
onClick={handleAvailableStatusChange}
|
||||
/>
|
||||
);
|
||||
};
|
||||
|
||||
export default NavBarItemOmnichannelLivechatToggle;
|
||||
@@ -0,0 +1,27 @@
|
||||
import { NavBarItem } from '@rocket.chat/fuselage';
|
||||
import type { HTMLAttributes } from 'react';
|
||||
|
||||
import { useOmnichannelQueueAction } from './hooks/useOmnichannelQueueAction';
|
||||
|
||||
export type NavBarItemOmnichannelQueueProps = Omit<HTMLAttributes<HTMLElement>, 'is'>;
|
||||
|
||||
const NavBarItemOmnichannelQueue = (props: NavBarItemOmnichannelQueueProps) => {
|
||||
const { isEnabled, title, icon, isPressed, handleGoToQueue } = useOmnichannelQueueAction();
|
||||
|
||||
if (!isEnabled) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return (
|
||||
<NavBarItem
|
||||
{...props}
|
||||
icon={icon}
|
||||
title={title}
|
||||
onClick={handleGoToQueue}
|
||||
pressed={isPressed}
|
||||
aria-current={isPressed ? 'page' : undefined}
|
||||
/>
|
||||
);
|
||||
};
|
||||
|
||||
export default NavBarItemOmnichannelQueue;
|
||||
@@ -0,0 +1,20 @@
|
||||
import { NavBarGroup } from '@rocket.chat/fuselage';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
|
||||
import NavBarItemOmnichannelContact from './NavBarItemOmnichannelContact';
|
||||
import NavBarItemOmnichannelLivechatToggle from './NavBarItemOmnichannelLivechatToggle';
|
||||
import NavBarItemOmnichannelQueue from './NavBarItemOmnichannelQueue';
|
||||
|
||||
const NavBarOmnichannelGroup = () => {
|
||||
const { t } = useTranslation();
|
||||
|
||||
return (
|
||||
<NavBarGroup aria-label={t('Omnichannel')}>
|
||||
<NavBarItemOmnichannelQueue />
|
||||
<NavBarItemOmnichannelContact />
|
||||
<NavBarItemOmnichannelLivechatToggle />
|
||||
</NavBarGroup>
|
||||
);
|
||||
};
|
||||
|
||||
export default NavBarOmnichannelGroup;
|
||||
@@ -0,0 +1,16 @@
|
||||
import type { Keys } from '@rocket.chat/icons';
|
||||
import { useCurrentRoutePath, useRouter } from '@rocket.chat/ui-contexts';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
|
||||
export const useOmnichannelContactAction = () => {
|
||||
const { t } = useTranslation();
|
||||
const router = useRouter();
|
||||
const currentRoute = useCurrentRoutePath();
|
||||
|
||||
return {
|
||||
icon: 'address-book' as Keys,
|
||||
title: t('Contact_Center'),
|
||||
handleGoToContactCenter: () => router.navigate('/omnichannel-directory'),
|
||||
isPressed: currentRoute?.includes('/omnichannel-directory') || false,
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,28 @@
|
||||
import { useStableCallback } from '@rocket.chat/fuselage-hooks';
|
||||
import type { Keys } from '@rocket.chat/icons';
|
||||
import { useEndpoint, useToastMessageDispatch } from '@rocket.chat/ui-contexts';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
|
||||
import { useOmnichannelAgentAvailable } from '../../../views/omnichannel/hooks/useOmnichannelAgentAvailable';
|
||||
|
||||
export const useOmnichannelLivechatToggle = () => {
|
||||
const { t } = useTranslation();
|
||||
const agentAvailable = useOmnichannelAgentAvailable();
|
||||
const changeAgentStatus = useEndpoint('POST', '/v1/livechat/agent.status');
|
||||
const dispatchToastMessage = useToastMessageDispatch();
|
||||
|
||||
const handleAvailableStatusChange = useStableCallback(async () => {
|
||||
try {
|
||||
await changeAgentStatus({});
|
||||
} catch (error: unknown) {
|
||||
dispatchToastMessage({ type: 'error', message: error });
|
||||
}
|
||||
});
|
||||
|
||||
return {
|
||||
title: agentAvailable ? t('Turn_off_answer_chats') : t('Turn_on_answer_chats'),
|
||||
isSuccess: agentAvailable,
|
||||
icon: (agentAvailable ? 'message' : 'message-disabled') as Keys,
|
||||
handleAvailableStatusChange,
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,21 @@
|
||||
import type { Keys } from '@rocket.chat/icons';
|
||||
import { useCurrentRoutePath, useRouter } from '@rocket.chat/ui-contexts';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
|
||||
import { useOmnichannelShowQueueLink } from '../../../views/omnichannel/hooks/useOmnichannelShowQueueLink';
|
||||
|
||||
export const useOmnichannelQueueAction = () => {
|
||||
const { t } = useTranslation();
|
||||
const showOmnichannelQueueLink = useOmnichannelShowQueueLink();
|
||||
|
||||
const router = useRouter();
|
||||
const currentRoute = useCurrentRoutePath();
|
||||
|
||||
return {
|
||||
isEnabled: showOmnichannelQueueLink,
|
||||
icon: 'queue' as Keys,
|
||||
title: t('Queue'),
|
||||
handleGoToQueue: () => router.navigate('/livechat-queue'),
|
||||
isPressed: currentRoute?.includes('/livechat-queue') || false,
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1 @@
|
||||
export { default } from './NavBarOmnichannelGroup';
|
||||
Reference in New Issue
Block a user