Skip to content

Commit 5ff36e3

Browse files
authored
Merge branch 'v7' into timfish/anr-scope-backport
2 parents f765d07 + 42b09c5 commit 5ff36e3

File tree

12 files changed

+66
-11
lines changed

12 files changed

+66
-11
lines changed

packages/feedback/src/constants.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ export const MESSAGE_PLACEHOLDER = "What's the bug? What did you expect?";
7070
export const MESSAGE_LABEL = 'Description';
7171
export const NAME_PLACEHOLDER = 'Your Name';
7272
export const NAME_LABEL = 'Name';
73+
export const IS_REQUIRED_LABEL = '(required)';
7374
export const SUCCESS_MESSAGE_TEXT = 'Thank you for your report!';
7475

7576
export const FEEDBACK_WIDGET_SOURCE = 'widget';

packages/feedback/src/integration.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import {
88
EMAIL_LABEL,
99
EMAIL_PLACEHOLDER,
1010
FORM_TITLE,
11+
IS_REQUIRED_LABEL,
1112
MESSAGE_LABEL,
1213
MESSAGE_PLACEHOLDER,
1314
NAME_LABEL,
@@ -105,6 +106,7 @@ export class Feedback implements Integration {
105106
messageLabel = MESSAGE_LABEL,
106107
namePlaceholder = NAME_PLACEHOLDER,
107108
nameLabel = NAME_LABEL,
109+
isRequiredLabel = IS_REQUIRED_LABEL,
108110
successMessageText = SUCCESS_MESSAGE_TEXT,
109111

110112
onFormClose,
@@ -152,6 +154,7 @@ export class Feedback implements Integration {
152154
messagePlaceholder,
153155
nameLabel,
154156
namePlaceholder,
157+
isRequiredLabel,
155158
successMessageText,
156159

157160
onFormClose,

packages/feedback/src/types/index.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,11 @@ export interface FeedbackTextConfiguration {
149149
* Message after feedback was sent successfully
150150
*/
151151
successMessageText: string;
152+
153+
/**
154+
* Label shown when an input field is required
155+
*/
156+
isRequiredLabel: string;
152157
}
153158

154159
/**

packages/feedback/src/widget/Form.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ export function Form({
5353
emailPlaceholder,
5454
messageLabel,
5555
messagePlaceholder,
56+
isRequiredLabel,
5657
cancelButtonLabel,
5758
submitButtonLabel,
5859

@@ -176,7 +177,8 @@ export function Form({
176177
'span',
177178
{ className: 'form__label__text' },
178179
nameLabel,
179-
isNameRequired && createElement('span', { className: 'form__label__text--required' }, ' (required)'),
180+
isNameRequired &&
181+
createElement('span', { className: 'form__label__text--required' }, ` ${isRequiredLabel}`),
180182
),
181183
nameEl,
182184
],
@@ -195,7 +197,8 @@ export function Form({
195197
'span',
196198
{ className: 'form__label__text' },
197199
emailLabel,
198-
isEmailRequired && createElement('span', { className: 'form__label__text--required' }, ' (required)'),
200+
isEmailRequired &&
201+
createElement('span', { className: 'form__label__text--required' }, ` ${isRequiredLabel}`),
199202
),
200203
emailEl,
201204
],
@@ -213,7 +216,7 @@ export function Form({
213216
'span',
214217
{ className: 'form__label__text' },
215218
messageLabel,
216-
createElement('span', { className: 'form__label__text--required' }, ' (required)'),
219+
createElement('span', { className: 'form__label__text--required' }, ` ${isRequiredLabel}`),
217220
),
218221
messageEl,
219222
],

packages/feedback/src/widget/createWidget.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,7 @@ export function createWidget({
200200
messagePlaceholder: options.messagePlaceholder,
201201
nameLabel: options.nameLabel,
202202
namePlaceholder: options.namePlaceholder,
203+
isRequiredLabel: options.isRequiredLabel,
203204
defaultName: (userKey && user && user[userKey.name]) || '',
204205
defaultEmail: (userKey && user && user[userKey.email]) || '',
205206
onClosed: () => {

packages/feedback/test/widget/Dialog.test.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ function renderDialog({
2323
messagePlaceholder = 'What is the issue?',
2424
cancelButtonLabel = 'Cancel!',
2525
submitButtonLabel = 'Submit!',
26+
isRequiredLabel = '(needed!)',
2627
...rest
2728
}: Partial<DialogProps> = {}) {
2829
return Dialog({
@@ -44,6 +45,7 @@ function renderDialog({
4445
messagePlaceholder,
4546
cancelButtonLabel,
4647
submitButtonLabel,
48+
isRequiredLabel,
4749
...rest,
4850
}) as NonNullableFields<ReturnType<typeof Dialog>>;
4951
}

packages/feedback/test/widget/Form.test.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ function renderForm({
2020
messagePlaceholder = 'What is the issue?',
2121
cancelButtonLabel = 'Cancel!',
2222
submitButtonLabel = 'Submit!',
23+
isRequiredLabel = '(needed!)',
2324
...rest
2425
}: Partial<FormComponentProps> = {}) {
2526
return Form({
@@ -37,6 +38,7 @@ function renderForm({
3738
messagePlaceholder,
3839
cancelButtonLabel,
3940
submitButtonLabel,
41+
isRequiredLabel,
4042
...rest,
4143
}) as NonNullableFields<ReturnType<typeof Form>>;
4244
}
@@ -89,9 +91,9 @@ describe('Form', () => {
8991
const nameLabel = formComponent.el.querySelector('label[htmlFor="name"]') as HTMLLabelElement;
9092
const emailLabel = formComponent.el.querySelector('label[htmlFor="email"]') as HTMLLabelElement;
9193
const messageLabel = formComponent.el.querySelector('label[htmlFor="message"]') as HTMLLabelElement;
92-
expect(nameLabel.textContent).toBe('Name! (required)');
93-
expect(emailLabel.textContent).toBe('Email! (required)');
94-
expect(messageLabel.textContent).toBe('Description! (required)');
94+
expect(nameLabel.textContent).toBe('Name! (needed!)');
95+
expect(emailLabel.textContent).toBe('Email! (needed!)');
96+
expect(messageLabel.textContent).toBe('Description! (needed!)');
9597

9698
const nameInput = formComponent.el.querySelector('[name="name"]') as HTMLInputElement;
9799
const emailInput = formComponent.el.querySelector('[name="email"]') as HTMLInputElement;

packages/feedback/test/widget/createWidget.test.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import {
55
EMAIL_LABEL,
66
EMAIL_PLACEHOLDER,
77
FORM_TITLE,
8+
IS_REQUIRED_LABEL,
89
MESSAGE_LABEL,
910
MESSAGE_PLACEHOLDER,
1011
NAME_LABEL,
@@ -47,6 +48,7 @@ const DEFAULT_OPTIONS = {
4748
messageLabel: MESSAGE_LABEL,
4849
namePlaceholder: NAME_PLACEHOLDER,
4950
nameLabel: NAME_LABEL,
51+
isRequiredLabel: IS_REQUIRED_LABEL,
5052
successMessageText: SUCCESS_MESSAGE_TEXT,
5153

5254
onFormClose: jest.fn(),

packages/replay-canvas/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@
5656
"homepage": "https://docs.sentry.io/platforms/javascript/session-replay/",
5757
"devDependencies": {
5858
"@babel/core": "^7.17.5",
59-
"@sentry-internal/rrweb": "2.11.0"
59+
"@sentry-internal/rrweb": "2.12.0"
6060
},
6161
"dependencies": {
6262
"@sentry/core": "7.108.0",

packages/replay/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,8 @@
5454
"devDependencies": {
5555
"@babel/core": "^7.17.5",
5656
"@sentry-internal/replay-worker": "7.108.0",
57-
"@sentry-internal/rrweb": "2.11.0",
58-
"@sentry-internal/rrweb-snapshot": "2.11.0",
57+
"@sentry-internal/rrweb": "2.12.0",
58+
"@sentry-internal/rrweb-snapshot": "2.12.0",
5959
"fflate": "^0.8.1",
6060
"jsdom-worker": "^0.2.1"
6161
},

packages/tracing-internal/src/browser/metrics/index.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ import { _startChild, isMeasurementValue } from './utils';
3232

3333
import { createSpanEnvelope } from '@sentry/core';
3434
import { getNavigationEntry } from '../web-vitals/lib/getNavigationEntry';
35-
import type { TTFBMetric } from '../web-vitals/types/ttfb';
3635

3736
const MAX_INT_AS_BYTES = 2147483647;
3837

@@ -674,7 +673,11 @@ function setResourceEntrySizeData(
674673
* ttfb information is added via vendored web vitals library.
675674
*/
676675
function _addTtfbRequestTimeToMeasurements(_measurements: Measurements): void {
677-
const navEntry = getNavigationEntry() as TTFBMetric['entries'][number];
676+
const navEntry = getNavigationEntry();
677+
if (!navEntry) {
678+
return;
679+
}
680+
678681
const { responseStart, requestStart } = navEntry;
679682

680683
if (requestStart <= responseStart) {

yarn.lock

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5554,18 +5554,37 @@
55545554
dependencies:
55555555
"@sentry-internal/rrweb-snapshot" "2.11.0"
55565556

5557+
"@sentry-internal/[email protected]":
5558+
version "2.12.0"
5559+
resolved "https://registry.yarnpkg.com/@sentry-internal/rrdom/-/rrdom-2.12.0.tgz#d3ca32b1e4b8c5d8cc9bdb44f933fe4b059573a0"
5560+
integrity sha512-EQ9vmhkTREdtzKp6SmD4GEkwr+RJcaEnbVcDZjbnQnxagskOpqvXjoPMONPf9hZhkULwnrnyFGGp0VpQOGBS0w==
5561+
dependencies:
5562+
"@sentry-internal/rrweb-snapshot" "2.12.0"
5563+
55575564
"@sentry-internal/[email protected]":
55585565
version "2.11.0"
55595566
resolved "https://registry.yarnpkg.com/@sentry-internal/rrweb-snapshot/-/rrweb-snapshot-2.11.0.tgz#1af79130604afea989d325465b209ac015b27c9a"
55605567
integrity sha512-1nP22QlplMNooSNvTh+L30NSZ+E3UcfaJyxXSMLxUjQHTGPyM1VkndxZMmxlKhyR5X+rLbxi/+RvuAcpM43VoA==
55615568

5569+
"@sentry-internal/[email protected]":
5570+
version "2.12.0"
5571+
resolved "https://registry.yarnpkg.com/@sentry-internal/rrweb-snapshot/-/rrweb-snapshot-2.12.0.tgz#2f1f6d4867a07ab757475fb4fa337d7f1aaa6b2d"
5572+
integrity sha512-AYo8CeDA7qDOKFG75E+bnxrS/qm7l5Ad0ftClA3VzoGV58bNNgv/aKiECtUPk0UPs4EqTQ8z8W/MZ9EYDF6vvA==
5573+
55625574
"@sentry-internal/[email protected]":
55635575
version "2.11.0"
55645576
resolved "https://registry.yarnpkg.com/@sentry-internal/rrweb-types/-/rrweb-types-2.11.0.tgz#e598c133b87be1fb04d31d09773b86142b095072"
55655577
integrity sha512-foCf9DGfN5ffzwykEtIXsV1P5d+XLDVGaQUnKF5ecGn+g5JzKTe/rPC92rL8/gEy2unL5sCTvlYL3DQvUFM4dA==
55665578
dependencies:
55675579
"@sentry-internal/rrweb-snapshot" "2.11.0"
55685580

5581+
"@sentry-internal/[email protected]":
5582+
version "2.12.0"
5583+
resolved "https://registry.yarnpkg.com/@sentry-internal/rrweb-types/-/rrweb-types-2.12.0.tgz#f7c57eda7610882c71860437657ffbbcb788184d"
5584+
integrity sha512-W0iLlTx3HeapBTGjg/uLoKQr1/DGPbkANqwjf4mW0IS4jHAVcxFX/e769aHHKEmd68Lm3+A8b08xdA9UDBXW5w==
5585+
dependencies:
5586+
"@sentry-internal/rrweb-snapshot" "2.12.0"
5587+
55695588
"@sentry-internal/[email protected]":
55705589
version "2.11.0"
55715590
resolved "https://registry.yarnpkg.com/@sentry-internal/rrweb/-/rrweb-2.11.0.tgz#be8e8dfff2acf64d418b625d35a20fdcd7daeb96"
@@ -5580,6 +5599,20 @@
55805599
fflate "^0.4.4"
55815600
mitt "^3.0.0"
55825601

5602+
"@sentry-internal/[email protected]":
5603+
version "2.12.0"
5604+
resolved "https://registry.yarnpkg.com/@sentry-internal/rrweb/-/rrweb-2.12.0.tgz#4becbedf7315f4b4e0ebc35319a848ec6f082dce"
5605+
integrity sha512-NosAF5f8dXdj6linXpI+e38/eKVtwy3R2rzmMohBCwdhPXgTkTV/Laj/9OsRxARNRyz81mIEGcn/Ivp/De7RaA==
5606+
dependencies:
5607+
"@sentry-internal/rrdom" "2.12.0"
5608+
"@sentry-internal/rrweb-snapshot" "2.12.0"
5609+
"@sentry-internal/rrweb-types" "2.12.0"
5610+
"@types/css-font-loading-module" "0.0.7"
5611+
"@xstate/fsm" "^1.4.0"
5612+
base64-arraybuffer "^1.0.1"
5613+
fflate "^0.4.4"
5614+
mitt "^3.0.0"
5615+
55835616
55845617
version "0.6.1"
55855618
resolved "https://registry.yarnpkg.com/@sentry/bundler-plugin-core/-/bundler-plugin-core-0.6.1.tgz#6c6a2ff3cdc98cd0ff1c30c59408cee9f067adf2"

0 commit comments

Comments
 (0)