Skip to content

Commit

Permalink
Fix username link QR code in RTL
Browse files Browse the repository at this point in the history
Co-authored-by: Fedor Indutny <79877362+indutny-signal@users.noreply.github.com>
  • Loading branch information
automated-signal and indutny-signal committed Feb 22, 2024
1 parent 59a0e44 commit 3278a07
Showing 1 changed file with 10 additions and 0 deletions.
10 changes: 10 additions & 0 deletions ts/components/UsernameLinkModalBody.tsx
Expand Up @@ -300,16 +300,19 @@ type CreateTextMeasurerOptionsType = Readonly<{
font: string;
letterSpacing: number;
maxWidth: number;
direction: 'ltr' | 'rtl';
}>;

function createTextMeasurer({
font,
letterSpacing,
maxWidth,
direction,
}: CreateTextMeasurerOptionsType): (text: string) => boolean {
const [, context] = createCanvasAndContext({ width: 1, height: 1 });

context.font = font;
context.direction = direction;
// Experimental Chrome APIs
(
context as unknown as {
Expand All @@ -324,6 +327,7 @@ type GenerateImageURLOptionsType = Readonly<{
link: string;
username: string;
hint: string;
hintDirection: 'ltr' | 'rtl';
colorId: number;
}>;

Expand All @@ -332,6 +336,7 @@ export async function _generateImageBlob({
link,
username,
hint,
hintDirection,
colorId,
}: GenerateImageURLOptionsType): Promise<Blob> {
const usernameLines = splitText(username, {
Expand All @@ -340,6 +345,7 @@ export async function _generateImageBlob({
maxWidth: USERNAME_MAX_WIDTH,
font: USERNAME_FONT,
letterSpacing: USERNAME_LETTER_SPACING,
direction: 'ltr',
}),
});

Expand All @@ -349,6 +355,7 @@ export async function _generateImageBlob({
maxWidth: HINT_MAX_WIDTH,
font: HINT_FONT,
letterSpacing: HINT_LETTER_SPACING,
direction: hintDirection,
}),
});

Expand Down Expand Up @@ -381,6 +388,7 @@ export async function _generateImageBlob({

context.save();
context.font = USERNAME_FONT;
context.direction = 'ltr';
// Experimental Chrome APIs
(
context as unknown as {
Expand All @@ -397,6 +405,7 @@ export async function _generateImageBlob({

context.save();
context.font = HINT_FONT;
context.direction = hintDirection;
// Experimental Chrome APIs
(
context as unknown as {
Expand Down Expand Up @@ -586,6 +595,7 @@ export function UsernameLinkModalBody({
username,
colorId,
hint: i18n('icu:UsernameLinkModalBody__hint'),
hintDirection: i18n.getLocaleDirection(),
});
const arrayBuffer = await blob.arrayBuffer();
if (isAborted) {
Expand Down

0 comments on commit 3278a07

Please sign in to comment.