fix: use correct formatting timestamp for readonly warning

pull/3281/head
Audric Ackermann 2 months ago
parent 17ad0e8535
commit d94f8952f1
No known key found for this signature in database

@ -72,7 +72,7 @@ import {
import { useSelectedDisableLegacyGroupDeprecatedActions } from '../../hooks/useRefreshReleasedFeaturesTimestamp'; import { useSelectedDisableLegacyGroupDeprecatedActions } from '../../hooks/useRefreshReleasedFeaturesTimestamp';
import { useAreGroupsCreatedAsNewGroupsYet } from '../../state/selectors/releasedFeatures'; import { useAreGroupsCreatedAsNewGroupsYet } from '../../state/selectors/releasedFeatures';
import { Constants } from '../../session'; import { Constants } from '../../session';
import { formatDateWithDateAndTime } from '../../util/i18n/formatting/conversationItemTimestamp'; import { format } from 'date-fns';
const DEFAULT_JPEG_QUALITY = 0.85; const DEFAULT_JPEG_QUALITY = 0.85;
@ -695,6 +695,10 @@ function OutdatedLegacyGroupBanner() {
!isPrivate && !isPublic && selectedConversationKey && selectedConversationKey.startsWith('05'); !isPrivate && !isPublic && selectedConversationKey && selectedConversationKey.startsWith('05');
const newGroupsCanBeCreated = useAreGroupsCreatedAsNewGroupsYet(); const newGroupsCanBeCreated = useAreGroupsCreatedAsNewGroupsYet();
const date = format(
new Date(Constants.FEATURE_RELEASE_TIMESTAMPS.LEGACY_GROUP_READONLY),
'h:mm a, d MMM yyyy'
);
// FIXME change the date here. Remove after QA // FIXME change the date here. Remove after QA
const text = deprecatedLegacyGroups const text = deprecatedLegacyGroups
@ -705,9 +709,7 @@ function OutdatedLegacyGroupBanner() {
weAreAdmin ? 'legacyGroupBeforeDeprecationAdmin' : 'legacyGroupBeforeDeprecationMember' weAreAdmin ? 'legacyGroupBeforeDeprecationAdmin' : 'legacyGroupBeforeDeprecationMember'
) )
.withArgs({ .withArgs({
date: formatDateWithDateAndTime( date,
new Date(Constants.FEATURE_RELEASE_TIMESTAMPS.LEGACY_GROUP_READONLY)
),
}) })
.toString(); .toString();

@ -24,8 +24,10 @@ import { localize } from '../../../localization/localeTools';
import { groupInfoActions } from '../../../state/ducks/metaGroups'; import { groupInfoActions } from '../../../state/ducks/metaGroups';
import { updateConfirmModal } from '../../../state/ducks/modalDialog'; import { updateConfirmModal } from '../../../state/ducks/modalDialog';
import { setLeftOverlayMode } from '../../../state/ducks/section'; import { setLeftOverlayMode } from '../../../state/ducks/section';
import { SessionButtonColor, SessionButton } from '../../basic/SessionButton'; import { SessionButtonColor, SessionButton, SessionButtonType } from '../../basic/SessionButton';
import { useAreGroupsCreatedAsNewGroupsYet } from '../../../state/selectors/releasedFeatures'; import { useAreGroupsCreatedAsNewGroupsYet } from '../../../state/selectors/releasedFeatures';
import { ConvoHub } from '../../../session/conversations';
import { ConversationTypeEnum } from '../../../models/types';
export const ConversationHeaderWithDetails = () => { export const ConversationHeaderWithDetails = () => {
const isSelectionMode = useIsMessageSelectionMode(); const isSelectionMode = useIsMessageSelectionMode();
@ -131,9 +133,16 @@ function RecreateGroupButton() {
return ( return (
<RecreateGroupContainer> <RecreateGroupContainer>
<SessionButton <SessionButton
buttonColor={SessionButtonColor.Primary} buttonType={SessionButtonType.Outline}
margin="var(--margins-sm)" margin="var(--margins-sm)"
onClick={() => { onClick={async () => {
try {
await Promise.all(
members.map(m => ConvoHub.use().getOrCreateAndWait(m, ConversationTypeEnum.PRIVATE))
);
} catch (e) {
window.log.warn('recreate group: failed to recreate a member convo', e.message);
}
showRecreateGroupModal(name || localize('groupUnknown').toString(), members); showRecreateGroupModal(name || localize('groupUnknown').toString(), members);
}} }}
> >

@ -14,22 +14,17 @@ import { Avatar, AvatarSize } from '../../avatar/Avatar';
import { SessionIconButton } from '../../icon'; import { SessionIconButton } from '../../icon';
import { useDisableLegacyGroupDeprecatedActions } from '../../../hooks/useRefreshReleasedFeaturesTimestamp'; import { useDisableLegacyGroupDeprecatedActions } from '../../../hooks/useRefreshReleasedFeaturesTimestamp';
export const AvatarHeader = (props: { export const AvatarHeader = (props: { pubkey: string; onAvatarClick?: () => void }) => {
pubkey: string;
onAvatarClick?: (pubkey: string) => void;
}) => {
const { pubkey, onAvatarClick } = props; const { pubkey, onAvatarClick } = props;
const isDisabledLegacyGroupDeprecated = useDisableLegacyGroupDeprecatedActions(pubkey); const isDisabledLegacyGroupDeprecated = useDisableLegacyGroupDeprecatedActions(pubkey);
const optOnAvatarClick = !isDisabledLegacyGroupDeprecated ? onAvatarClick : undefined;
return ( return (
<span className="module-conversation-header__avatar"> <span className="module-conversation-header__avatar">
<Avatar <Avatar
size={AvatarSize.S} size={AvatarSize.S}
onAvatarClick={() => { onAvatarClick={optOnAvatarClick}
if (onAvatarClick && !isDisabledLegacyGroupDeprecated) {
onAvatarClick(pubkey);
}
}}
pubkey={pubkey} pubkey={pubkey}
dataTestId="conversation-options-avatar" dataTestId="conversation-options-avatar"
/> />

@ -442,8 +442,12 @@ const refreshGroupDetailsFromWrapper = createAsyncThunk(
const members = await MetaGroupWrapperActions.memberGetAll(groupPk); const members = await MetaGroupWrapperActions.memberGetAll(groupPk);
if (window.sessionFeatureFlags.debug.debugLibsessionDumps) { if (window.sessionFeatureFlags.debug.debugLibsessionDumps) {
window.log.info(`groupInfo after refreshGroupDetailsFromWrapper: ${stringify(infos)}`); window.log.info(
window.log.info(`groupMembers after refreshGroupDetailsFromWrapper: ${stringify(members)}`); `groupInfo of ${ed25519Str(groupPk)} after refreshGroupDetailsFromWrapper: ${stringify(infos)}`
);
window.log.info(
`groupMembers of ${ed25519Str(groupPk)} after refreshGroupDetailsFromWrapper: ${stringify(members)}`
);
} }
return { groupPk, infos, members }; return { groupPk, infos, members };
} catch (e) { } catch (e) {
@ -1365,8 +1369,10 @@ const metaGroupSlice = createSlice({
state.infos[groupPk] = infos; state.infos[groupPk] = infos;
state.members[groupPk] = members; state.members[groupPk] = members;
if (window.sessionFeatureFlags.debug.debugLibsessionDumps) { if (window.sessionFeatureFlags.debug.debugLibsessionDumps) {
window.log.info(`groupInfo after merge: ${stringify(infos)}`); window.log.info(`groupInfo of ${ed25519Str(groupPk)} after merge: ${stringify(infos)}`);
window.log.info(`groupMembers after merge: ${stringify(members)}`); window.log.info(
`groupMembers of ${ed25519Str(groupPk)} after merge: ${stringify(members)}`
);
} }
refreshConvosModelProps([groupPk]); refreshConvosModelProps([groupPk]);
} else { } else {
@ -1389,8 +1395,12 @@ const metaGroupSlice = createSlice({
state.members[groupPk] = members; state.members[groupPk] = members;
refreshConvosModelProps([groupPk]); refreshConvosModelProps([groupPk]);
if (window.sessionFeatureFlags.debug.debugLibsessionDumps) { if (window.sessionFeatureFlags.debug.debugLibsessionDumps) {
window.log.info(`groupInfo after handleUserGroupUpdate: ${stringify(infos)}`); window.log.info(
window.log.info(`groupMembers after handleUserGroupUpdate: ${stringify(members)}`); `groupInfo of ${ed25519Str(groupPk)} after handleUserGroupUpdate: ${stringify(infos)}`
);
window.log.info(
`groupMembers of ${ed25519Str(groupPk)} after handleUserGroupUpdate: ${stringify(members)}`
);
} }
} else { } else {
window.log.debug( window.log.debug(
@ -1411,9 +1421,11 @@ const metaGroupSlice = createSlice({
state.members[groupPk] = members; state.members[groupPk] = members;
refreshConvosModelProps([groupPk]); refreshConvosModelProps([groupPk]);
if (window.sessionFeatureFlags.debug.debugLibsessionDumps) { if (window.sessionFeatureFlags.debug.debugLibsessionDumps) {
window.log.info(`groupInfo after currentDeviceGroupMembersChange: ${stringify(infos)}`);
window.log.info( window.log.info(
`groupMembers after currentDeviceGroupMembersChange: ${stringify(members)}` `groupInfo of ${ed25519Str(groupPk)} after currentDeviceGroupMembersChange: ${stringify(infos)}`
);
window.log.info(
`groupMembers of ${ed25519Str(groupPk)} after currentDeviceGroupMembersChange: ${stringify(members)}`
); );
} }
}); });
@ -1434,8 +1446,12 @@ const metaGroupSlice = createSlice({
state.members[groupPk] = members; state.members[groupPk] = members;
refreshConvosModelProps([groupPk]); refreshConvosModelProps([groupPk]);
if (window.sessionFeatureFlags.debug.debugLibsessionDumps) { if (window.sessionFeatureFlags.debug.debugLibsessionDumps) {
window.log.info(`groupInfo after currentDeviceGroupNameChange: ${stringify(infos)}`); window.log.info(
window.log.info(`groupMembers after currentDeviceGroupNameChange: ${stringify(members)}`); `groupInfo of ${ed25519Str(groupPk)} after currentDeviceGroupNameChange: ${stringify(infos)}`
);
window.log.info(
`groupMembers of ${ed25519Str(groupPk)} after currentDeviceGroupNameChange: ${stringify(members)}`
);
} }
}); });
builder.addCase(currentDeviceGroupNameChange.rejected, (state, action) => { builder.addCase(currentDeviceGroupNameChange.rejected, (state, action) => {
@ -1453,8 +1469,12 @@ const metaGroupSlice = createSlice({
state.members[groupPk] = members; state.members[groupPk] = members;
refreshConvosModelProps([groupPk]); refreshConvosModelProps([groupPk]);
if (window.sessionFeatureFlags.debug.debugLibsessionDumps) { if (window.sessionFeatureFlags.debug.debugLibsessionDumps) {
window.log.info(`groupInfo after handleMemberLeftMessage: ${stringify(infos)}`); window.log.info(
window.log.info(`groupMembers after handleMemberLeftMessage: ${stringify(members)}`); `groupInfo of ${ed25519Str(groupPk)} after handleMemberLeftMessage: ${stringify(infos)}`
);
window.log.info(
`groupMembers of ${ed25519Str(groupPk)} after handleMemberLeftMessage: ${stringify(members)}`
);
} }
}); });
builder.addCase(handleMemberLeftMessage.rejected, (_state, action) => { builder.addCase(handleMemberLeftMessage.rejected, (_state, action) => {
@ -1467,8 +1487,12 @@ const metaGroupSlice = createSlice({
state.members[groupPk] = members; state.members[groupPk] = members;
refreshConvosModelProps([groupPk]); refreshConvosModelProps([groupPk]);
if (window.sessionFeatureFlags.debug.debugLibsessionDumps) { if (window.sessionFeatureFlags.debug.debugLibsessionDumps) {
window.log.info(`groupInfo after inviteResponseReceived: ${stringify(infos)}`); window.log.info(
window.log.info(`groupMembers after inviteResponseReceived: ${stringify(members)}`); `groupInfo of ${ed25519Str(groupPk)} after inviteResponseReceived: ${stringify(infos)}`
);
window.log.info(
`groupMembers of ${ed25519Str(groupPk)} after inviteResponseReceived: ${stringify(members)}`
);
} }
}); });
builder.addCase(inviteResponseReceived.rejected, (_state, action) => { builder.addCase(inviteResponseReceived.rejected, (_state, action) => {

@ -40,22 +40,3 @@ export const getConversationItemString = (date: Date) => {
}); });
return formatter.format(date); return formatter.format(date);
}; };
/**
* Returns a date like 11:00 am, 25 Jan 2026
*/
export function formatDateWithDateAndTime(date: Date) {
const dateFormatted = new Intl.DateTimeFormat(getBrowserLocale(), {
day: 'numeric',
month: 'short',
year: 'numeric',
}).format(date);
const timeFormatted = new Intl.DateTimeFormat(getBrowserLocale(), {
hour: 'numeric',
minute: '2-digit',
hour12: true,
}).format(date);
return [timeFormatted, dateFormatted].join(', ');
}

Loading…
Cancel
Save