feat: Move Timestamp parser out of Feature Preview (#36976)

This commit is contained in:
Martin Schoeler 2025-09-18 15:52:59 -03:00 committed by Guilherme Gazzo
parent d7a620459b
commit 0c02586046
13 changed files with 14 additions and 44 deletions

View File

@ -0,0 +1,8 @@
---
"@rocket.chat/meteor": major
"@rocket.chat/gazzodown": major
"@rocket.chat/i18n": major
"@rocket.chat/ui-client": major
---
Promotes Timestamp Parser from preview state to stable

View File

@ -3,7 +3,6 @@ import { useLocalStorage } from '@rocket.chat/fuselage-hooks';
import type { ChannelMention, UserMention } from '@rocket.chat/gazzodown';
import { MarkupInteractionContext } from '@rocket.chat/gazzodown';
import { escapeRegExp } from '@rocket.chat/string-helpers';
import { useFeaturePreview } from '@rocket.chat/ui-client';
import { useLayout, useRouter, useUserPreference, useUserId, useUserCard } from '@rocket.chat/ui-contexts';
import type { UIEvent } from 'react';
import { useCallback, memo, useMemo } from 'react';
@ -26,7 +25,6 @@ type GazzodownTextProps = {
};
const GazzodownText = ({ mentions, channels, searchText, children }: GazzodownTextProps) => {
const enableTimestamp = useFeaturePreview('enable-timestamp-message-parser');
const [userLanguage] = useLocalStorage('userLanguage', 'en');
const highlights = useMessageListHighlights();
@ -136,7 +134,6 @@ const GazzodownText = ({ mentions, channels, searchText, children }: GazzodownTe
ownUserId,
showMentionSymbol,
triggerProps,
enableTimestamp,
language: userLanguage,
}}
>

View File

@ -1,5 +1,4 @@
import type { GenericMenuItemProps } from '@rocket.chat/ui-client';
import { useFeaturePreview } from '@rocket.chat/ui-client';
import { useSetModal } from '@rocket.chat/ui-contexts';
import { useTranslation } from 'react-i18next';
@ -9,11 +8,6 @@ import type { ComposerAPI } from '../../../../../../lib/chats/ChatAPI';
export const useTimestampAction = (composer: ComposerAPI | undefined): GenericMenuItemProps | undefined => {
const setModal = useSetModal();
const { t } = useTranslation();
const timestampFeatureEnabled = useFeaturePreview('enable-timestamp-message-parser');
if (!timestampFeatureEnabled) {
return;
}
const handleClick = () => {
if (!composer) {

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

View File

@ -16,7 +16,7 @@ export default {
decorators: [
(Story) => (
<Suspense fallback={null}>
<MarkupInteractionContext.Provider value={{ enableTimestamp: true }}>
<MarkupInteractionContext.Provider value={{}}>
<MessageContainer>
<MessageBody>
<Box

View File

@ -23,7 +23,6 @@ type MarkupInteractionContextValue = {
ownUserId?: string | null;
showMentionSymbol?: boolean;
triggerProps?: AriaButtonProps<'button'>;
enableTimestamp?: boolean;
language?: string;
};

View File

@ -35,19 +35,11 @@ const Timestamp = ({ format, value }: { format: 't' | 'T' | 'd' | 'D' | 'f' | 'F
};
// eslint-disable-next-line react/no-multi-comp
const TimestampWrapper = ({ children }: BoldSpanProps) => {
const { enableTimestamp } = useContext(MarkupInteractionContext);
if (!enableTimestamp) {
return <>{`<t:${children.value.timestamp}:${children.value.format}>`}</>;
}
return (
<ErrorBoundary fallback={<>{new Date(parseInt(children.value.timestamp) * 1000).toUTCString()}</>}>
<Timestamp format={children.value.format} value={new Date(parseInt(children.value.timestamp) * 1000)} />
</ErrorBoundary>
);
};
const TimestampWrapper = ({ children }: BoldSpanProps) => (
<ErrorBoundary fallback={<>{new Date(parseInt(children.value.timestamp) * 1000).toUTCString()}</>}>
<Timestamp format={children.value.format} value={new Date(parseInt(children.value.timestamp) * 1000)} />
</ErrorBoundary>
);
// eslint-disable-next-line react/no-multi-comp
const ShortTime = ({ value }: { value: Date }) => <Time value={format(value, 'p')} dateTime={value.toISOString()} />;

View File

@ -1996,8 +1996,6 @@
"Enable_of_limit_apps_currently_enabled": "**{{enabled}} of {{limit}} {{context}} apps currently enabled.** \n \nWorkspaces on Community can have up to {{limit}} {{context}} apps enabled. \n \n**{{appName}} will be disabled by default.** Disable another {{context}} app or upgrade to Premium to enable this app.",
"Enable_of_limit_apps_currently_enabled_exceeded": "**{{enabled}} of {{limit}} {{context}} apps currently enabled.** \n \nCommunity app limit has been exceeded. \n \nWorkspaces on Community can have up to {{limit}} {{context}} apps enabled. \n \n**{{appName}} will be disabled by default.** You will need to disable at least {{exceed}} other {{context}} apps or upgrade to a Premium plan to enable this app.",
"Enable_omnichannel_auto_close_abandoned_rooms": "Enable automatic closing of rooms abandoned by the visitor",
"Enable_timestamp": "Timestamp in messages",
"Enable_timestamp_description": "Render Unix timestamps inside messages in your local (system) timezone.",
"Enable_to_bypass_email_verification": "Enable to bypass email verification",
"Enable_two-factor_authentication": "Enable two-factor authentication",
"Enable_two-factor_authentication_callout_description": "Two-factor authentication (2FA) is now required for your account on this workspace. 2FA must be setup and enabled before you can proceed with other tasks.",

View File

@ -1898,8 +1898,6 @@
"Enable_of_limit_apps_currently_enabled": "**{{enabled}} av {{limit}} {{context}} apper er for øyeblikket aktivert.** \n \nArbeidsområder på Community-utgave kan ha opptil {{limit}} {{context}} apper aktivert. \n \n**{{appName}} vil bli deaktivert som standard.** Deaktiver en annen {{context}} app eller oppgrader til Premium for å aktivere denne appen.",
"Enable_of_limit_apps_currently_enabled_exceeded": "**{{enabled}} av {{limit}} {{context}} apper er for øyeblikket aktivert.** \n \nGrensen for apper i Community-utgave er overskredet. \n \nArbeidsområder i Community-utgave kan ha opptil {{limit}} {{context}} apper aktivert. \n \n**{{appName}} vil være deaktivert som standard.** Du må deaktivere minst {{exceed}} andre {{context}} apper eller oppgradere til et Premium-abonnement for å aktivere denne appen.",
"Enable_omnichannel_auto_close_abandoned_rooms": "Aktiver automatisk stenging av rom som er forlatt av de besøkende",
"Enable_timestamp": "Tidsstempel i meldinger",
"Enable_timestamp_description": "Gjengi Unix-tidsstempler inne i meldinger i din lokale (system) tidssone.",
"Enable_to_bypass_email_verification": "Aktiver for å omgå e-postbekreftelse",
"Enable_two-factor_authentication": "Aktiver tofaktorautentisering via TOTP",
"Enable_two-factor_authentication_callout_description": "To-faktor autentisering (2FA) er nå påkrevd for kontoen din på dette arbeidsområdet. 2FA må være konfigurert og aktivert før du kan fortsette med andre oppgaver.",

View File

@ -1847,8 +1847,6 @@
"Enable_of_limit_apps_currently_enabled": "**{{enabled}} av {{limit}} {{context}} apper er for øyeblikket aktivert.** \n \nArbeidsområder på Community-utgave kan ha opptil {{limit}} {{context}} apper aktivert. \n \n**{{appName}} vil bli deaktivert som standard.** Deaktiver en annen {{context}} app eller oppgrader til Premium for å aktivere denne appen.",
"Enable_of_limit_apps_currently_enabled_exceeded": "**{{enabled}} av {{limit}} {{context}} apper er for øyeblikket aktivert.** \n \nGrensen for apper i Community-utgave er overskredet. \n \nArbeidsområder i Community-utgave kan ha opptil {{limit}} {{context}} apper aktivert. \n \n**{{appName}} vil være deaktivert som standard.** Du må deaktivere minst {{exceed}} andre {{context}} apper eller oppgradere til et Premium-abonnement for å aktivere denne appen.",
"Enable_omnichannel_auto_close_abandoned_rooms": "Aktiver automatisk stenging av rom som er forlatt av de besøkende",
"Enable_timestamp": "Tidsstempel i meldinger",
"Enable_timestamp_description": "Gjengi Unix-tidsstempler inne i meldinger i din lokale (system) tidssone.",
"Enable_to_bypass_email_verification": "Aktiver for å omgå e-postbekreftelse",
"Enable_two-factor_authentication": "Aktiver tofaktorautentisering",
"Enable_unlimited_apps": "Aktiver ubegrensede apper",

View File

@ -1879,8 +1879,6 @@
"Enable_of_limit_apps_currently_enabled": "**{{enabled}} de {{limit}} {{context}} aplicativos atualmente habilitados \n \nOs espaços de trabalho na Comunidade podem ter até {{limit}} {{context}} aplicativos ativados. \n \n** O{{appName}} será desativado por padrão.** Desative outro aplicativo {{context}} ou faça upgrade para o Premium para ativar esse aplicativo.",
"Enable_of_limit_apps_currently_enabled_exceeded": "**{{enabled}} de {{limit}} {{context}} aplicativos atualmente habilitados \n \nO limite de aplicativos da comunidade foi excedido. \n \nOs espaços de trabalho na Comunidade podem ter até {{limit}} {{context}} aplicativos ativados. \n \n**{{appName}} será desativado por padrão.** Você precisará desativar pelo menos {{exceed}} outros aplicativos {{context}} ou fazer upgrade para um plano Premium para ativar esse aplicativo.",
"Enable_omnichannel_auto_close_abandoned_rooms": "Habilitar o fechamento automático de salas abandonadas pelo visitante",
"Enable_timestamp": "Registro de data e hora nas mensagens",
"Enable_timestamp_description": "Renderiza os carimbos de data e hora Unix dentro das mensagens em seu fuso horário local (do sistema).",
"Enable_to_bypass_email_verification": "Ativar para ignorar a verificação de e-mail",
"Enable_two-factor_authentication": "Ativar autenticação de dois fatores por TOTP",
"Enable_two-factor_authentication_callout_description": "A autenticação de dois fatores (2FA) agora é necessária para sua conta neste espaço de trabalho. a 2FA deve ser configurada e ativada antes que você possa prosseguir com outras tarefas.",

View File

@ -1881,8 +1881,6 @@
"Enable_of_limit_apps_currently_enabled": "**{{enabled}} av {{limit}} {{context}} appar som för närvarande är aktiverade.** \n \nArbetsytorna i Community Edition kan ha upp till {{limit}} {{context}} appar aktiverade. \n \n**{{appName}} är inaktiverad som standard.** Inaktivera en annan {{context}}-app eller uppgradera till Enterprise för att aktivera den här appen.",
"Enable_of_limit_apps_currently_enabled_exceeded": "**{{enabled}} av {{limit}} {{context}} appar som för närvarande är aktiverade.** \n \nGränsen för apparna i gemenskapsutgåvan har överskridits. \n \nArbetsytorna i Community Edition kan ha upp till {{limit}} {{context}} appar aktiverade. \n \n**{{appName}} är inaktiverad som standard.** Du måste inaktivera minst {{exceed}} andra {{context}}-appar eller uppgradera till Enterprise för att aktivera den här appen.",
"Enable_omnichannel_auto_close_abandoned_rooms": "Aktivera automatisk stängning av rum som avbrutits av besökaren",
"Enable_timestamp": "Tidsstämpel i meddelanden",
"Enable_timestamp_description": "Återge Unix-tidsstämplar i meddelanden i din lokala (system-) tidszon.",
"Enable_to_bypass_email_verification": "Aktivera för att kringgå e-postverifiering",
"Enable_two-factor_authentication": "Aktivera tvåfaktorsautentisering",
"Enable_two-factor_authentication_callout_description": "Tvåfaktorsautentisering (2FA) krävs nu för ditt konto på den här arbetsytan. 2FA måste konfigureras och aktiveras innan du kan fortsätta med andra uppgifter.",

View File

@ -2,7 +2,6 @@ import type { TranslationKey } from '@rocket.chat/ui-contexts';
export type FeaturesAvailable =
| 'quickReactions'
| 'enable-timestamp-message-parser'
| 'contextualbarResizable'
| 'newNavigation'
| 'secondarySidebar';
@ -33,15 +32,6 @@ export const defaultFeaturesPreview: FeaturePreviewProps[] = [
value: false,
enabled: true,
},
{
name: 'enable-timestamp-message-parser',
i18n: 'Enable_timestamp',
description: 'Enable_timestamp_description',
group: 'Message',
imageUrl: 'images/featurePreview/timestamp.png',
value: false,
enabled: true,
},
{
name: 'contextualbarResizable',
i18n: 'Contextualbar_resizable',