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:
BIN
packages/livechat/.storybook/assets/accessoryImage.png
Normal file
BIN
packages/livechat/.storybook/assets/accessoryImage.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 10 KiB |
BIN
packages/livechat/.storybook/assets/beep.mp3
Normal file
BIN
packages/livechat/.storybook/assets/beep.mp3
Normal file
Binary file not shown.
BIN
packages/livechat/.storybook/assets/gazzo.jpg
Normal file
BIN
packages/livechat/.storybook/assets/gazzo.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.2 KiB |
BIN
packages/livechat/.storybook/assets/martin.jpg
Normal file
BIN
packages/livechat/.storybook/assets/martin.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.3 KiB |
BIN
packages/livechat/.storybook/assets/sample-audio.mp3
Normal file
BIN
packages/livechat/.storybook/assets/sample-audio.mp3
Normal file
Binary file not shown.
BIN
packages/livechat/.storybook/assets/tasso.jpg
Normal file
BIN
packages/livechat/.storybook/assets/tasso.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.2 KiB |
85
packages/livechat/.storybook/helpers.tsx
Normal file
85
packages/livechat/.storybook/helpers.tsx
Normal file
@@ -0,0 +1,85 @@
|
||||
import type { Decorator } from '@storybook/preact';
|
||||
import { loremIpsum as originalLoremIpsum } from 'lorem-ipsum';
|
||||
import { action } from 'storybook/actions';
|
||||
|
||||
import gazzoAvatar from './assets/gazzo.jpg';
|
||||
import martinAvatar from './assets/martin.jpg';
|
||||
import tassoAvatar from './assets/tasso.jpg';
|
||||
import type { ScreenContextValue } from '../src/components/Screen/ScreenProvider';
|
||||
import { ScreenContext } from '../src/components/Screen/ScreenProvider';
|
||||
import store, { StoreContext, type StoreState } from '../src/store';
|
||||
|
||||
export const screenDecorator: Decorator = (storyFn) => (
|
||||
<div style={{ display: 'flex', width: 365, height: 500 }}>
|
||||
<ScreenContext.Provider value={screenProps()}>{storyFn()}</ScreenContext.Provider>
|
||||
</div>
|
||||
);
|
||||
|
||||
export const screenProps = (): ScreenContextValue => ({
|
||||
hideWatermark: false,
|
||||
livechatLogo: undefined,
|
||||
notificationsEnabled: true,
|
||||
minimized: false,
|
||||
expanded: false,
|
||||
windowed: false,
|
||||
sound: undefined,
|
||||
alerts: [],
|
||||
modal: null,
|
||||
onEnableNotifications: action('enableNotifications'),
|
||||
onDisableNotifications: action('disableNotifications'),
|
||||
onMinimize: action('minimize'),
|
||||
onRestore: action('restore'),
|
||||
onOpenWindow: action('openWindow'),
|
||||
onDismissAlert: action('dismissAlert'),
|
||||
dismissNotification: action('dismissNotification'),
|
||||
theme: {
|
||||
color: '',
|
||||
fontColor: '',
|
||||
iconColor: '',
|
||||
hideAgentAvatar: false,
|
||||
hideGuestAvatar: true,
|
||||
hideExpandChat: false,
|
||||
},
|
||||
});
|
||||
|
||||
// Feeds arbitrary store data from a story's args into StoreContext, so container components that
|
||||
// read from `useStore()` render against it. Args are treated as a partial store state override.
|
||||
export const storeDecorator: Decorator<Partial<StoreState>> = (storyFn, { args }) => (
|
||||
<StoreContext.Provider
|
||||
value={{
|
||||
...store.state,
|
||||
...args,
|
||||
dispatch: store.setState.bind(store),
|
||||
on: store.on.bind(store),
|
||||
off: store.off.bind(store),
|
||||
}}
|
||||
>
|
||||
{storyFn()}
|
||||
</StoreContext.Provider>
|
||||
);
|
||||
|
||||
export const avatarResolver = (username: string) =>
|
||||
({
|
||||
'guilherme.gazzo': gazzoAvatar,
|
||||
'martin.schoeler': martinAvatar,
|
||||
'tasso.evangelista': tassoAvatar,
|
||||
})[username];
|
||||
|
||||
export const attachmentResolver = (url: string) => url;
|
||||
|
||||
const createRandom = (s: number) => () => {
|
||||
s = Math.sin(s) * 10000;
|
||||
return s - Math.floor(s);
|
||||
};
|
||||
const loremIpsumRandom = createRandom(42);
|
||||
export const loremIpsum = (options: Parameters<typeof originalLoremIpsum>[0]) =>
|
||||
originalLoremIpsum({ random: loremIpsumRandom, ...options });
|
||||
|
||||
export { gazzoAvatar, martinAvatar, tassoAvatar };
|
||||
|
||||
export { default as sampleAudio } from './assets/sample-audio.mp3';
|
||||
export { default as sampleImage } from './assets/sample-image.jpg';
|
||||
export { default as sampleVideo } from './assets/sample-video.mp4';
|
||||
export { default as accessoryImage } from './assets/accessoryImage.png';
|
||||
export { default as imageBlock } from './assets/imageBlock.png';
|
||||
export { default as beepAudio } from './assets/beep.mp3';
|
||||
127
packages/livechat/.storybook/main.ts
Normal file
127
packages/livechat/.storybook/main.ts
Normal file
@@ -0,0 +1,127 @@
|
||||
import { dirname, join } from 'path';
|
||||
|
||||
import type { StorybookConfig } from '@storybook/preact-webpack5';
|
||||
import webpack, { type RuleSetRule } from 'webpack';
|
||||
|
||||
const config: StorybookConfig = {
|
||||
stories: ['../src/**/{*.story,story,*.stories,stories}.tsx'],
|
||||
|
||||
addons: [
|
||||
'@storybook/addon-docs',
|
||||
{
|
||||
name: '@storybook/addon-styling-webpack',
|
||||
options: {
|
||||
rules: [
|
||||
{
|
||||
test: /\.css$/,
|
||||
sideEffects: true,
|
||||
use: [
|
||||
'style-loader',
|
||||
{
|
||||
loader: 'css-loader',
|
||||
options: {
|
||||
importLoaders: 1,
|
||||
sourceMap: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
loader: 'postcss-loader',
|
||||
options: {
|
||||
implementation: 'postcss',
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
test: /\.scss$/,
|
||||
sideEffects: true,
|
||||
use: [
|
||||
'style-loader',
|
||||
{
|
||||
loader: 'css-loader',
|
||||
options: {
|
||||
modules: {
|
||||
localIdentName: '[local]__[hash:base64:5]',
|
||||
},
|
||||
importLoaders: 1,
|
||||
sourceMap: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
loader: 'postcss-loader',
|
||||
options: {
|
||||
implementation: 'postcss',
|
||||
},
|
||||
},
|
||||
{
|
||||
loader: 'sass-loader',
|
||||
options: {
|
||||
implementation: 'sass',
|
||||
sourceMap: true,
|
||||
sassOptions: {},
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
'@storybook/addon-webpack5-compiler-swc',
|
||||
'@rocket.chat/storybook-dark-mode',
|
||||
],
|
||||
|
||||
framework: {
|
||||
name: '@storybook/preact-webpack5',
|
||||
options: {},
|
||||
},
|
||||
|
||||
typescript: {},
|
||||
|
||||
webpackFinal: async (config) => {
|
||||
const dateFnsRoot = dirname(require.resolve('date-fns/package.json'));
|
||||
config.resolve = {
|
||||
...config.resolve,
|
||||
alias: {
|
||||
...config.resolve?.alias,
|
||||
[require.resolve('../src/lib/uiKit')]: require.resolve('./mocks/uiKit.ts'),
|
||||
// date-fns v4's `exports` map doesn't expose the `./locale` directory
|
||||
// for enumeration, so webpack's dynamic `import()` context fails. Alias
|
||||
// to the on-disk folder to bypass `exports`.
|
||||
'date-fns/locale$': join(dateFnsRoot, 'locale'),
|
||||
},
|
||||
};
|
||||
|
||||
const isRuleSetRule = (rule: any): rule is RuleSetRule => typeof rule === 'object';
|
||||
|
||||
config.module?.rules?.filter(isRuleSetRule).forEach((rule) => {
|
||||
if (String(rule.test) === String(/\.(svg|ico|jpg|jpeg|png|apng|gif|eot|otf|webp|ttf|woff|woff2|cur|ani|pdf)(\?.*)?$/)) {
|
||||
rule.test = /\.(ico|jpg|jpeg|png|apng|gif|eot|otf|webp|ttf|woff|woff2|cur|ani|pdf)(\?.*)?$/;
|
||||
}
|
||||
});
|
||||
|
||||
config.module?.rules?.push({
|
||||
test: /\.svg$/,
|
||||
exclude: /logo\.svg/,
|
||||
use: ['desvg-loader/preact', 'svg-loader'],
|
||||
});
|
||||
|
||||
config.module?.rules?.push({
|
||||
test: /logo\.svg(\?.*)?$/,
|
||||
type: 'asset/resource',
|
||||
generator: { filename: 'static/media/[path][name][ext]' },
|
||||
});
|
||||
|
||||
// webpack 5 doesn't handle the `node:` scheme, so `node:stream` (pulled in by the
|
||||
// preact `react-dom/server` shim) bypasses the `stream: false` resolve fallback and
|
||||
// throws. Strip the prefix so those specifiers hit the existing node-core fallbacks.
|
||||
config.plugins?.push(
|
||||
new webpack.NormalModuleReplacementPlugin(/^node:/, (resource) => {
|
||||
resource.request = resource.request.replace(/^node:/, '');
|
||||
}),
|
||||
);
|
||||
|
||||
return config;
|
||||
},
|
||||
};
|
||||
|
||||
export default config;
|
||||
24
packages/livechat/.storybook/mocks/uiKit.ts
Normal file
24
packages/livechat/.storybook/mocks/uiKit.ts
Normal file
@@ -0,0 +1,24 @@
|
||||
import { action } from 'storybook/actions';
|
||||
|
||||
export const UIKitInteractionType = {
|
||||
MODAL_OPEN: 'modal.open',
|
||||
MODAL_CLOSE: 'modal.close',
|
||||
MODAL_UPDATE: 'modal.update',
|
||||
ERRORS: 'errors',
|
||||
};
|
||||
|
||||
export const UIKitIncomingInteractionType = {
|
||||
BLOCK: 'blockAction',
|
||||
VIEW_SUBMIT: 'viewSubmit',
|
||||
VIEW_CLOSED: 'viewClosed',
|
||||
};
|
||||
|
||||
export const UIKitIncomingInteractionContainerType = {
|
||||
MESSAGE: 'message',
|
||||
VIEW: 'view',
|
||||
};
|
||||
|
||||
export const triggerAction = async (payload: unknown) => {
|
||||
await new Promise((resolve) => setTimeout(resolve, 1000));
|
||||
action('dispatchAction')(payload);
|
||||
};
|
||||
12
packages/livechat/.storybook/preview.tsx
Normal file
12
packages/livechat/.storybook/preview.tsx
Normal file
@@ -0,0 +1,12 @@
|
||||
import type { Preview } from '@storybook/preact';
|
||||
|
||||
import 'emoji-mart/css/emoji-mart.css';
|
||||
import '../src/styles/index.scss';
|
||||
|
||||
const preview: Preview = {
|
||||
parameters: {
|
||||
layout: 'fullscreen',
|
||||
},
|
||||
};
|
||||
|
||||
export default preview;
|
||||
Reference in New Issue
Block a user