refactor: rename expirationLength

to expirationDurationMs
pull/2971/head
William Grant 2 years ago
parent 386e9ef709
commit 1d7380a254

@ -16,13 +16,13 @@ const ExpireTimerBucket = styled.div`
`; `;
type Props = { type Props = {
expirationLength: number; // should be in milliseconds expirationDurationMs: number;
expirationTimestamp: number | null; expirationTimestamp: number | null;
style: CSSProperties; style: CSSProperties;
}; };
export const ExpireTimer = (props: Props) => { export const ExpireTimer = (props: Props) => {
const { expirationLength, expirationTimestamp, style } = props; const { expirationDurationMs, expirationTimestamp, style } = props;
const initialTimeLeft = Math.max(Math.round(((expirationTimestamp || 0) - Date.now()) / 1000), 0); const initialTimeLeft = Math.max(Math.round(((expirationTimestamp || 0) - Date.now()) / 1000), 0);
const [timeLeft, setTimeLeft] = useState(initialTimeLeft); const [timeLeft, setTimeLeft] = useState(initialTimeLeft);
@ -39,13 +39,13 @@ export const ExpireTimer = (props: Props) => {
const updateFrequency = 500; const updateFrequency = 500;
useInterval(update, updateFrequency); useInterval(update, updateFrequency);
if (!(expirationLength && expirationTimestamp)) { if (!(expirationDurationMs && expirationTimestamp)) {
return null; return null;
} }
const expireTimerColor = 'var(--primary-text-color)'; const expireTimerColor = 'var(--primary-text-color)';
const bucket = getTimerBucketIcon(expirationTimestamp, expirationLength); const bucket = getTimerBucketIcon(expirationTimestamp, expirationDurationMs);
return ( return (
<ExpireTimerBucket style={style}> <ExpireTimerBucket style={style}>

@ -22,7 +22,7 @@ function useIsExpired(
const { const {
convoId, convoId,
messageId, messageId,
expirationLength, expirationDurationMs,
expirationTimestamp, expirationTimestamp,
isExpired: isExpiredProps, isExpired: isExpiredProps,
} = props; } = props;
@ -34,7 +34,7 @@ function useIsExpired(
const checkExpired = useCallback(async () => { const checkExpired = useCallback(async () => {
const now = Date.now(); const now = Date.now();
if (!messageId || !expirationTimestamp || !expirationLength) { if (!messageId || !expirationTimestamp || !expirationDurationMs) {
return; return;
} }
@ -53,11 +53,11 @@ function useIsExpired(
convo?.updateLastMessage(); convo?.updateLastMessage();
} }
} }
}, [messageId, expirationTimestamp, expirationLength, isExpired, convoId, dispatch]); }, [messageId, expirationTimestamp, expirationDurationMs, isExpired, convoId, dispatch]);
let checkFrequency: number | null = null; let checkFrequency: number | null = null;
if (expirationLength) { if (expirationDurationMs) {
const increment = getIncrement(expirationLength || EXPIRATION_CHECK_MINIMUM); const increment = getIncrement(expirationDurationMs || EXPIRATION_CHECK_MINIMUM);
checkFrequency = Math.max(EXPIRATION_CHECK_MINIMUM, increment); checkFrequency = Math.max(EXPIRATION_CHECK_MINIMUM, increment);
} }
@ -95,7 +95,7 @@ export const ExpirableReadableMessage = (props: ExpirableReadableMessageProps) =
messageId: selected?.messageId, messageId: selected?.messageId,
direction: selected?.direction, direction: selected?.direction,
expirationTimestamp: selected?.expirationTimestamp, expirationTimestamp: selected?.expirationTimestamp,
expirationLength: selected?.expirationLength, expirationDurationMs: selected?.expirationDurationMs,
isExpired: selected?.isExpired, isExpired: selected?.isExpired,
}); });
@ -108,7 +108,7 @@ export const ExpirableReadableMessage = (props: ExpirableReadableMessageProps) =
direction, direction,
receivedAt, receivedAt,
isUnread, isUnread,
expirationLength, expirationDurationMs,
expirationTimestamp, expirationTimestamp,
} = selected; } = selected;
@ -126,9 +126,9 @@ export const ExpirableReadableMessage = (props: ExpirableReadableMessageProps) =
key={`readable-message-${messageId}`} key={`readable-message-${messageId}`}
dataTestId={dataTestId} dataTestId={dataTestId}
> >
{expirationLength && expirationTimestamp ? ( {expirationDurationMs && expirationTimestamp ? (
<ExpireTimer <ExpireTimer
expirationLength={expirationLength} expirationDurationMs={expirationDurationMs}
expirationTimestamp={expirationTimestamp} expirationTimestamp={expirationTimestamp}
style={{ style={{
display: !isCentered && isIncoming ? 'none' : 'block', display: !isCentered && isIncoming ? 'none' : 'block',
@ -138,9 +138,9 @@ export const ExpirableReadableMessage = (props: ExpirableReadableMessageProps) =
/> />
) : null} ) : null}
{props.children} {props.children}
{expirationLength && expirationTimestamp ? ( {expirationDurationMs && expirationTimestamp ? (
<ExpireTimer <ExpireTimer
expirationLength={expirationLength} expirationDurationMs={expirationDurationMs}
expirationTimestamp={expirationTimestamp} expirationTimestamp={expirationTimestamp}
style={{ style={{
display: !isCentered && !isIncoming ? 'none' : 'block', display: !isCentered && !isIncoming ? 'none' : 'block',

@ -295,15 +295,15 @@ export class MessageModel extends Backbone.Model<MessageAttributes> {
public getPropsForExpiringMessage(): PropsForExpiringMessage { public getPropsForExpiringMessage(): PropsForExpiringMessage {
const expirationType = this.getExpirationType(); const expirationType = this.getExpirationType();
const expirationLength = this.getExpireTimer() const expirationDurationMs = this.getExpireTimer()
? this.getExpireTimer() * DURATION.SECONDS ? this.getExpireTimer() * DURATION.SECONDS
: null; : null;
const expireTimerStart = this.getExpirationStartTimestamp() || null; const expireTimerStart = this.getExpirationStartTimestamp() || null;
const expirationTimestamp = const expirationTimestamp =
expirationType && expireTimerStart && expirationLength expirationType && expireTimerStart && expirationDurationMs
? expireTimerStart + expirationLength ? expireTimerStart + expirationDurationMs
: null; : null;
const direction = const direction =
@ -315,7 +315,7 @@ export class MessageModel extends Backbone.Model<MessageAttributes> {
convoId: this.get('conversationId'), convoId: this.get('conversationId'),
messageId: this.get('id'), messageId: this.get('id'),
direction, direction,
expirationLength, expirationDurationMs,
expirationTimestamp, expirationTimestamp,
isExpired: this.isExpired(), isExpired: this.isExpired(),
}; };
@ -518,11 +518,11 @@ export class MessageModel extends Backbone.Model<MessageAttributes> {
public getPropsForMessage(): PropsForMessageWithoutConvoProps { public getPropsForMessage(): PropsForMessageWithoutConvoProps {
const sender = this.getSource(); const sender = this.getSource();
const expirationType = this.getExpirationType(); const expirationType = this.getExpirationType();
const expirationLength = this.getExpireTimer() * DURATION.SECONDS; const expirationDurationMs = this.getExpireTimer() * DURATION.SECONDS;
const expireTimerStart = this.getExpirationStartTimestamp(); const expireTimerStart = this.getExpirationStartTimestamp();
const expirationTimestamp = const expirationTimestamp =
expirationType && expireTimerStart && expirationLength expirationType && expireTimerStart && expirationDurationMs
? expireTimerStart + expirationLength ? expireTimerStart + expirationDurationMs
: null; : null;
const attachments = this.get('attachments') || []; const attachments = this.get('attachments') || [];
@ -557,8 +557,8 @@ export class MessageModel extends Backbone.Model<MessageAttributes> {
if (expirationType) { if (expirationType) {
props.expirationType = expirationType; props.expirationType = expirationType;
} }
if (expirationLength) { if (expirationDurationMs) {
props.expirationLength = expirationLength; props.expirationDurationMs = expirationDurationMs;
} }
if (expirationTimestamp) { if (expirationTimestamp) {
props.expirationTimestamp = expirationTimestamp; props.expirationTimestamp = expirationTimestamp;

@ -81,7 +81,7 @@ export type PropsForExpiringMessage = {
receivedAt?: number; receivedAt?: number;
isUnread?: boolean; isUnread?: boolean;
expirationTimestamp?: number | null; expirationTimestamp?: number | null;
expirationLength?: number | null; expirationDurationMs?: number | null;
isExpired?: boolean; isExpired?: boolean;
}; };
@ -202,7 +202,7 @@ export type PropsForMessageWithoutConvoProps = {
isDeleted?: boolean; isDeleted?: boolean;
isUnread?: boolean; isUnread?: boolean;
expirationType?: DisappearingMessageType; expirationType?: DisappearingMessageType;
expirationLength?: number; expirationDurationMs?: number;
expirationTimestamp?: number | null; expirationTimestamp?: number | null;
isExpired?: boolean; isExpired?: boolean;
isTrustedForAttachmentDownload?: boolean; isTrustedForAttachmentDownload?: boolean;

@ -886,7 +886,7 @@ export const getMessageExpirationProps = createSelector(getMessagePropsByMessage
'receivedAt', 'receivedAt',
'isUnread', 'isUnread',
'expirationTimestamp', 'expirationTimestamp',
'expirationLength', 'expirationDurationMs',
'isExpired', 'isExpired',
]), ]),
messageId: props.propsForMessage.id, messageId: props.propsForMessage.id,
@ -961,7 +961,7 @@ export const getGenericReadableMessageSelectorProps = createSelector(
'convoId', 'convoId',
'direction', 'direction',
'conversationType', 'conversationType',
'expirationLength', 'expirationDurationMs',
'expirationTimestamp', 'expirationTimestamp',
'isExpired', 'isExpired',
'isUnread', 'isUnread',

@ -13,9 +13,9 @@ export function getIncrement(length: number): number {
return Math.ceil(length / 12); return Math.ceil(length / 12);
} }
export function getTimerBucketIcon(expiration: number, length: number): SessionIconType { export function getTimerBucketIcon(expirationMs: number, length: number): SessionIconType {
const now = Date.now(); const now = Date.now();
const delta = expiration - now; const delta = expirationMs - now;
if (delta < 0) { if (delta < 0) {
return 'timer60'; return 'timer60';

Loading…
Cancel
Save