From c6104eafb2555a3adc6caa16f771a04f3a75e8ab Mon Sep 17 00:00:00 2001 From: Priscila Oliveira Date: Thu, 24 Jul 2025 08:51:49 +0200 Subject: [PATCH 1/9] feat: Add PlayStation getting started doc --- .../contentBlocks/defaultRenderers.tsx | 2 + .../console/playstation.tsx | 182 ++++++++++++++++++ .../gettingStartedDocs/getPlatformPath.ts | 5 + 3 files changed, 189 insertions(+) create mode 100644 static/app/gettingStartedDocs/console/playstation.tsx diff --git a/static/app/components/onboarding/gettingStartedDoc/contentBlocks/defaultRenderers.tsx b/static/app/components/onboarding/gettingStartedDoc/contentBlocks/defaultRenderers.tsx index 6fe088b2185934..8180803d947de1 100644 --- a/static/app/components/onboarding/gettingStartedDoc/contentBlocks/defaultRenderers.tsx +++ b/static/app/components/onboarding/gettingStartedDoc/contentBlocks/defaultRenderers.tsx @@ -28,6 +28,7 @@ function AlertBlock({ showIcon, system, trailingItems, + icon, }: Extract) { return (
@@ -36,6 +37,7 @@ function AlertBlock({ showIcon={showIcon} system={system} trailingItems={trailingItems} + icon={icon} > {text} diff --git a/static/app/gettingStartedDocs/console/playstation.tsx b/static/app/gettingStartedDocs/console/playstation.tsx new file mode 100644 index 00000000000000..84774edb178950 --- /dev/null +++ b/static/app/gettingStartedDocs/console/playstation.tsx @@ -0,0 +1,182 @@ +import {Button} from 'sentry/components/core/button'; +import {ExternalLink} from 'sentry/components/core/link'; +import List from 'sentry/components/list'; +import ListItem from 'sentry/components/list/listItem'; +import { + type Docs, + type OnboardingConfig, + StepType, +} from 'sentry/components/onboarding/gettingStartedDoc/types'; +import {IconLock} from 'sentry/icons/iconLock'; +import {t, tct} from 'sentry/locale'; + +const onboarding: OnboardingConfig = { + install: () => [ + { + type: StepType.INSTALL, + content: [ + { + type: 'text', + text: tct( + 'Our [sentryPlayStationLink:Sentry PlayStation SDK] extends the core [sentryNativeLink:sentry-native] library with PlayStation-specific implementations and is designed to work across standalone engines, Unreal Engine, and Unity.', + { + code: , + sentryPlayStationLink: ( + + ), + sentryNativeLink: ( + + ), + } + ), + }, + { + type: 'alert', + alertType: 'warning', + icon: , + text: tct( + '[strong:Access Restricted]. The PlayStation SDK is distributed through a private repository under NDA.', + { + strong: , + } + ), + showIcon: true, + trailingItems: ( + + ), + }, + { + type: 'text', + text: t( + 'Once you have access, the private repository contains complete instructions for building and integrating the SDK with your engine of choice.' + ), + }, + ], + }, + ], + configure: params => [ + { + type: StepType.CONFIGURE, + content: [ + { + type: 'text', + text: t( + 'The SDK supports multiple integration paths depending on your engine:' + ), + }, + { + type: 'custom', + content: ( + + + {tct( + '[strong:Standalone] - engine agostic, pure sentry-native to be used, for example, on proprietary game engines', + {strong: } + )} + + + {tct( + '[strong:Unreal Engine] - as the extension to [sentryUnrealLink:sentry-unreal] on ps5', + { + strong: , + sentryUnrealLink: ( + + ), + } + )} + + + {tct( + '[strong:Unity] - as the extension to [sentryUnityLink:sentry-unity] on ps5', + { + strong: , + sentryUnityLink: ( + + ), + } + )} + + + ), + }, + { + type: 'text', + text: t( + 'Please follow the PlayStation-specific integration instructions for your engine in the private repository.' + ), + }, + { + type: 'text', + text: t( + "Here's a minimal example of initializing the SDK in a standalone setup:" + ), + }, + { + type: 'code', + language: 'c', + code: ` +#include + +int main(void) { + sentry_options_t *options = sentry_options_new(); + sentry_options_set_dsn(options, "${params.dsn.public}"); + // This is also the default-path. For further information and recommendations: + // https://docs.sentry.io/platforms/native/configuration/options/#database-path + sentry_options_set_database_path(options, ".sentry-native"); + sentry_options_set_release(options, "my-project-name@2.3.12"); + sentry_options_set_debug(options, 1); + sentry_init(options); + + /* ... */ + + // make sure everything flushes + sentry_close(); +}`, + }, + ], + }, + ], + verify: () => [ + { + type: StepType.VERIFY, + content: [ + { + type: 'text', + text: t( + 'Once integrated, verify that your Sentry integration is working correctly by sending a test event:' + ), + }, + { + type: 'code', + language: 'c', + code: ` +sentry_capture_event(sentry_value_new_message_event( + /* level */ SENTRY_LEVEL_INFO, + /* logger */ "custom", + /* message */ "It works!" +));`, + }, + { + type: 'text', + text: tct( + "Alternatively, if you're using [code:Unreal] or [code:Unity], refer to the engine-specific PlayStation instructions in the [privateRepositoryLink:private repository] for details on how to trigger and verify events", + { + code: , + privateRepositoryLink: ( + + ), + } + ), + }, + ], + }, + ], +}; + +const docs: Docs = { + onboarding, +}; + +export default docs; diff --git a/static/app/utils/gettingStartedDocs/getPlatformPath.ts b/static/app/utils/gettingStartedDocs/getPlatformPath.ts index 33488726f2e0d1..2a2e753915603e 100644 --- a/static/app/utils/gettingStartedDocs/getPlatformPath.ts +++ b/static/app/utils/gettingStartedDocs/getPlatformPath.ts @@ -1,6 +1,11 @@ import type {PlatformIntegration} from 'sentry/types/project'; export function getPlatformPath(platform: PlatformIntegration) { + // handle console platforms (xbox, playstation, nintendo-switch, etc.) + if (platform.type === 'console') { + return `console/${platform.id}`; + } + // some platforms use a naming convention that combines 'language' and 'id' with a hyphen in between. For example, 'react-native'. if (platform.id === platform.language) { return `${platform.language}/${platform.language}`; From 8b1ffdf44374b6f70762c88f8fbae79496975a91 Mon Sep 17 00:00:00 2001 From: Priscila Oliveira Date: Thu, 24 Jul 2025 10:04:01 +0200 Subject: [PATCH 2/9] feat: Add generic modal for requesting access to private gaming repository --- static/app/actionCreators/modal.tsx | 11 ++ .../modals/privateGamingSdkAccessModal.tsx | 183 ++++++++++++++++++ .../console/playstation.tsx | 16 +- 3 files changed, 208 insertions(+), 2 deletions(-) create mode 100644 static/app/components/modals/privateGamingSdkAccessModal.tsx diff --git a/static/app/actionCreators/modal.tsx b/static/app/actionCreators/modal.tsx index 779ce59893865a..b960cb68ff9c9f 100644 --- a/static/app/actionCreators/modal.tsx +++ b/static/app/actionCreators/modal.tsx @@ -7,6 +7,7 @@ import type {SaveQueryModalProps} from 'sentry/components/modals/explore/saveQue import type {ImportDashboardFromFileModalProps} from 'sentry/components/modals/importDashboardFromFileModal'; import type {InsightChartModalOptions} from 'sentry/components/modals/insightChartModal'; import type {InviteRow} from 'sentry/components/modals/inviteMembersModal/types'; +import type {PrivateGamingSdkAccessModalProps} from 'sentry/components/modals/privateGamingSdkAccessModal'; import type {ReprocessEventModalOptions} from 'sentry/components/modals/reprocessEventModal'; import type {AddToDashboardModalProps} from 'sentry/components/modals/widgetBuilder/addToDashboardModal'; import type {OverwriteWidgetModalProps} from 'sentry/components/modals/widgetBuilder/overwriteWidgetModal'; @@ -447,3 +448,13 @@ export async function openTokenRegenerationConfirmationModal(options: ModalOptio openModal(deps => ); } + +export async function openPrivateGamingSdkAccessModal( + options: PrivateGamingSdkAccessModalProps +) { + const {PrivateGamingSdkAccessModal} = await import( + 'sentry/components/modals/privateGamingSdkAccessModal' + ); + + openModal(deps => ); +} diff --git a/static/app/components/modals/privateGamingSdkAccessModal.tsx b/static/app/components/modals/privateGamingSdkAccessModal.tsx new file mode 100644 index 00000000000000..9ebf3db7d0b630 --- /dev/null +++ b/static/app/components/modals/privateGamingSdkAccessModal.tsx @@ -0,0 +1,183 @@ +import {Fragment, useCallback, useState} from 'react'; +import {captureFeedback} from '@sentry/react'; + +import {addSuccessMessage} from 'sentry/actionCreators/indicator'; +import {type ModalRenderProps} from 'sentry/actionCreators/modal'; +import {Button} from 'sentry/components/core/button'; +import {ButtonBar} from 'sentry/components/core/button/buttonBar'; +import SelectField from 'sentry/components/forms/fields/selectField'; +import TextField from 'sentry/components/forms/fields/textField'; +import {t, tct} from 'sentry/locale'; +import type {Organization} from 'sentry/types/organization'; +import {useUser} from 'sentry/utils/useUser'; + +const PRIVATE_GAMING_SDK_OPTIONS = [ + {value: 'playstation', label: 'PlayStation'}, + {value: 'xbox', label: 'Xbox'}, + {value: 'nintendo-switch', label: 'Nintendo Switch'}, +] as const; + +type GamingPlatform = (typeof PRIVATE_GAMING_SDK_OPTIONS)[number]['value']; + +export interface PrivateGamingSdkAccessModalProps { + organization: Organization; + projectSlug: string; + sdkName: string; + gamingPlatform?: GamingPlatform; + onSubmit?: () => void; +} + +export function PrivateGamingSdkAccessModal({ + Header, + Body, + Footer, + closeModal, + organization, + projectSlug, + sdkName, + gamingPlatform, + onSubmit, +}: PrivateGamingSdkAccessModalProps & ModalRenderProps) { + const user = useUser(); + const [isSubmitting, setIsSubmitting] = useState(false); + const [githubProfile, setGithubProfile] = useState(''); + const [gamingPlatforms, setGamingPlatforms] = useState( + gamingPlatform ? [gamingPlatform] : [] + ); + + const isFormValid = !!githubProfile.trim() && gamingPlatforms.length > 0; + + const handleSubmit = useCallback(() => { + if (!isFormValid) { + return; + } + + setIsSubmitting(true); + + onSubmit?.(); + + const messageBody = [ + `User: ${user.name}`, + `Email: ${user.email}`, + gamingPlatforms.length === 1 + ? `Platform: ${gamingPlatforms[0]}` + : `Platforms: ${gamingPlatforms + .map( + (platform: string) => + PRIVATE_GAMING_SDK_OPTIONS.find(option => option.value === platform) + ?.label || platform + ) + .join(', ')}`, + `Org Slug: ${organization.slug}`, + `Project: ${projectSlug}`, + `GitHub Profile: ${githubProfile}`, + ].join('\n'); + + // Use captureFeedback with proper user context instead of tags + captureFeedback( + { + message: messageBody, + name: user.name, + email: user.email, + source: `${gamingPlatform}-sdk-access`, + tags: { + feature: `${gamingPlatform}-sdk-access`, + }, + }, + { + captureContext: { + user: { + id: user.id, + email: user.email, + username: user.username, + name: user.name, + }, + }, + } + ); + + addSuccessMessage( + tct('Your [sdkName] SDK access request has been submitted.', { + sdkName, + }) + ); + setIsSubmitting(false); + closeModal(); + }, [ + isFormValid, + gamingPlatform, + githubProfile, + organization, + sdkName, + user, + gamingPlatforms, + closeModal, + onSubmit, + projectSlug, + ]); + + return ( + +
+

+ {tct('Request [sdkName] SDK Access', { + sdkName, + })} +

+
+ +

+ {gamingPlatform + ? tct( + 'Request access to our [sdkName] SDK. Please provide your GitHub profile.', + { + sdkName, + } + ) + : tct( + 'Request access to our [sdkName] SDK. Please provide your GitHub profile and the gaming platforms you work with.', + { + sdkName, + } + )} +

+ + {!gamingPlatform && ( + + )} + +
+ + + + +
+
+ ); +} diff --git a/static/app/gettingStartedDocs/console/playstation.tsx b/static/app/gettingStartedDocs/console/playstation.tsx index 84774edb178950..d21d0cdc3410ff 100644 --- a/static/app/gettingStartedDocs/console/playstation.tsx +++ b/static/app/gettingStartedDocs/console/playstation.tsx @@ -1,3 +1,4 @@ +import {openPrivateGamingSdkAccessModal} from 'sentry/actionCreators/modal'; import {Button} from 'sentry/components/core/button'; import {ExternalLink} from 'sentry/components/core/link'; import List from 'sentry/components/list'; @@ -11,7 +12,7 @@ import {IconLock} from 'sentry/icons/iconLock'; import {t, tct} from 'sentry/locale'; const onboarding: OnboardingConfig = { - install: () => [ + install: params => [ { type: StepType.INSTALL, content: [ @@ -42,7 +43,18 @@ const onboarding: OnboardingConfig = { ), showIcon: true, trailingItems: ( - ), From ac86751ed76222d92eae2edb57b1bb03ae1a0055 Mon Sep 17 00:00:00 2001 From: Priscila Oliveira Date: Thu, 24 Jul 2025 12:14:17 +0200 Subject: [PATCH 3/9] cursor feedback --- .../app/components/modals/privateGamingSdkAccessModal.tsx | 8 +++++--- static/app/gettingStartedDocs/console/playstation.tsx | 1 + 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/static/app/components/modals/privateGamingSdkAccessModal.tsx b/static/app/components/modals/privateGamingSdkAccessModal.tsx index 9ebf3db7d0b630..b675c6f254d8e8 100644 --- a/static/app/components/modals/privateGamingSdkAccessModal.tsx +++ b/static/app/components/modals/privateGamingSdkAccessModal.tsx @@ -23,6 +23,7 @@ export interface PrivateGamingSdkAccessModalProps { organization: Organization; projectSlug: string; sdkName: string; + source: string; gamingPlatform?: GamingPlatform; onSubmit?: () => void; } @@ -37,6 +38,7 @@ export function PrivateGamingSdkAccessModal({ sdkName, gamingPlatform, onSubmit, + source, }: PrivateGamingSdkAccessModalProps & ModalRenderProps) { const user = useUser(); const [isSubmitting, setIsSubmitting] = useState(false); @@ -79,9 +81,9 @@ export function PrivateGamingSdkAccessModal({ message: messageBody, name: user.name, email: user.email, - source: `${gamingPlatform}-sdk-access`, + source, tags: { - feature: `${gamingPlatform}-sdk-access`, + feature: source, }, }, { @@ -105,7 +107,6 @@ export function PrivateGamingSdkAccessModal({ closeModal(); }, [ isFormValid, - gamingPlatform, githubProfile, organization, sdkName, @@ -114,6 +115,7 @@ export function PrivateGamingSdkAccessModal({ closeModal, onSubmit, projectSlug, + source, ]); return ( diff --git a/static/app/gettingStartedDocs/console/playstation.tsx b/static/app/gettingStartedDocs/console/playstation.tsx index d21d0cdc3410ff..9b3f11f216d9c8 100644 --- a/static/app/gettingStartedDocs/console/playstation.tsx +++ b/static/app/gettingStartedDocs/console/playstation.tsx @@ -52,6 +52,7 @@ const onboarding: OnboardingConfig = { projectSlug: params.projectSlug, sdkName: 'PlayStation', gamingPlatform: 'playstation', + source: 'playstation-sdk-access', }); }} > From 9a120e91fc7295aad19c105fdb7049626ba31ef9 Mon Sep 17 00:00:00 2001 From: Priscila Oliveira Date: Thu, 24 Jul 2025 12:16:00 +0200 Subject: [PATCH 4/9] cursor feedback --- static/app/components/modals/privateGamingSdkAccessModal.tsx | 5 ++--- static/app/gettingStartedDocs/console/playstation.tsx | 1 - 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/static/app/components/modals/privateGamingSdkAccessModal.tsx b/static/app/components/modals/privateGamingSdkAccessModal.tsx index b675c6f254d8e8..32d9f15cb7ae19 100644 --- a/static/app/components/modals/privateGamingSdkAccessModal.tsx +++ b/static/app/components/modals/privateGamingSdkAccessModal.tsx @@ -23,7 +23,6 @@ export interface PrivateGamingSdkAccessModalProps { organization: Organization; projectSlug: string; sdkName: string; - source: string; gamingPlatform?: GamingPlatform; onSubmit?: () => void; } @@ -38,7 +37,6 @@ export function PrivateGamingSdkAccessModal({ sdkName, gamingPlatform, onSubmit, - source, }: PrivateGamingSdkAccessModalProps & ModalRenderProps) { const user = useUser(); const [isSubmitting, setIsSubmitting] = useState(false); @@ -75,6 +73,8 @@ export function PrivateGamingSdkAccessModal({ `GitHub Profile: ${githubProfile}`, ].join('\n'); + const source = `${sdkName.toLowerCase()}-sdk-access`; + // Use captureFeedback with proper user context instead of tags captureFeedback( { @@ -115,7 +115,6 @@ export function PrivateGamingSdkAccessModal({ closeModal, onSubmit, projectSlug, - source, ]); return ( diff --git a/static/app/gettingStartedDocs/console/playstation.tsx b/static/app/gettingStartedDocs/console/playstation.tsx index 9b3f11f216d9c8..d21d0cdc3410ff 100644 --- a/static/app/gettingStartedDocs/console/playstation.tsx +++ b/static/app/gettingStartedDocs/console/playstation.tsx @@ -52,7 +52,6 @@ const onboarding: OnboardingConfig = { projectSlug: params.projectSlug, sdkName: 'PlayStation', gamingPlatform: 'playstation', - source: 'playstation-sdk-access', }); }} > From bddc882753f1191fc3b424cd8bac64a2e5e12ea3 Mon Sep 17 00:00:00 2001 From: Priscila Oliveira Date: Fri, 25 Jul 2025 06:43:29 +0200 Subject: [PATCH 5/9] Update static/app/gettingStartedDocs/console/playstation.tsx Co-authored-by: Bruno Garcia --- static/app/gettingStartedDocs/console/playstation.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/static/app/gettingStartedDocs/console/playstation.tsx b/static/app/gettingStartedDocs/console/playstation.tsx index 84774edb178950..f77d38b08b646f 100644 --- a/static/app/gettingStartedDocs/console/playstation.tsx +++ b/static/app/gettingStartedDocs/console/playstation.tsx @@ -161,7 +161,7 @@ sentry_capture_event(sentry_value_new_message_event( { type: 'text', text: tct( - "Alternatively, if you're using [code:Unreal] or [code:Unity], refer to the engine-specific PlayStation instructions in the [privateRepositoryLink:private repository] for details on how to trigger and verify events", + "Alternatively, if you're using [code:Unreal] or [code:Unity], use that specific project type. Instructions for PlayStation support specific for those game engines will be displayed there.", { code: , privateRepositoryLink: ( From 320d003a39eb4bad4dfcaf0a8a103aa1e4b9dc3e Mon Sep 17 00:00:00 2001 From: Priscila Oliveira Date: Fri, 25 Jul 2025 10:34:59 +0200 Subject: [PATCH 6/9] feedback --- .../console/playstation.tsx | 84 +++++-------------- 1 file changed, 21 insertions(+), 63 deletions(-) diff --git a/static/app/gettingStartedDocs/console/playstation.tsx b/static/app/gettingStartedDocs/console/playstation.tsx index f77d38b08b646f..189de8aa11ff1d 100644 --- a/static/app/gettingStartedDocs/console/playstation.tsx +++ b/static/app/gettingStartedDocs/console/playstation.tsx @@ -1,7 +1,5 @@ import {Button} from 'sentry/components/core/button'; import {ExternalLink} from 'sentry/components/core/link'; -import List from 'sentry/components/list'; -import ListItem from 'sentry/components/list/listItem'; import { type Docs, type OnboardingConfig, @@ -18,7 +16,7 @@ const onboarding: OnboardingConfig = { { type: 'text', text: tct( - 'Our [sentryPlayStationLink:Sentry PlayStation SDK] extends the core [sentryNativeLink:sentry-native] library with PlayStation-specific implementations and is designed to work across standalone engines, Unreal Engine, and Unity.', + 'Our [sentryPlayStationLink:Sentry PlayStation SDK] extends the core [sentryNativeLink:sentry-native] library with PlayStation-specific implementations for standalone engines and proprietary game engines.', { code: , sentryPlayStationLink: ( @@ -35,9 +33,12 @@ const onboarding: OnboardingConfig = { alertType: 'warning', icon: , text: tct( - '[strong:Access Restricted]. The PlayStation SDK is distributed through a private repository under NDA.', + '[strong:Access Restricted]. The PlayStation SDK is distributed through a [privateRepositoryLink:private repository] under NDA.', { strong: , + privateRepositoryLink: ( + + ), } ), showIcon: true, @@ -63,54 +64,7 @@ const onboarding: OnboardingConfig = { { type: 'text', text: t( - 'The SDK supports multiple integration paths depending on your engine:' - ), - }, - { - type: 'custom', - content: ( - - - {tct( - '[strong:Standalone] - engine agostic, pure sentry-native to be used, for example, on proprietary game engines', - {strong: } - )} - - - {tct( - '[strong:Unreal Engine] - as the extension to [sentryUnrealLink:sentry-unreal] on ps5', - { - strong: , - sentryUnrealLink: ( - - ), - } - )} - - - {tct( - '[strong:Unity] - as the extension to [sentryUnityLink:sentry-unity] on ps5', - { - strong: , - sentryUnityLink: ( - - ), - } - )} - - - ), - }, - { - type: 'text', - text: t( - 'Please follow the PlayStation-specific integration instructions for your engine in the private repository.' - ), - }, - { - type: 'text', - text: t( - "Here's a minimal example of initializing the SDK in a standalone setup:" + 'The PlayStation SDK is designed for standalone engine integration. Initialize the SDK in your application:' ), }, { @@ -122,11 +76,10 @@ const onboarding: OnboardingConfig = { int main(void) { sentry_options_t *options = sentry_options_new(); sentry_options_set_dsn(options, "${params.dsn.public}"); - // This is also the default-path. For further information and recommendations: - // https://docs.sentry.io/platforms/native/configuration/options/#database-path - sentry_options_set_database_path(options, ".sentry-native"); sentry_options_set_release(options, "my-project-name@2.3.12"); sentry_options_set_debug(options, 1); + // For further configuration options, including database path, + // see the private repository. sentry_init(options); /* ... */ @@ -135,6 +88,17 @@ int main(void) { sentry_close(); }`, }, + { + type: 'text', + text: tct( + 'For PlayStation-specific configuration options and advanced features, please refer to the documentation in the [privateRepositoryLink:private repository].', + { + privateRepositoryLink: ( + + ), + } + ), + }, ], }, ], @@ -160,14 +124,8 @@ sentry_capture_event(sentry_value_new_message_event( }, { type: 'text', - text: tct( - "Alternatively, if you're using [code:Unreal] or [code:Unity], use that specific project type. Instructions for PlayStation support specific for those game engines will be displayed there.", - { - code: , - privateRepositoryLink: ( - - ), - } + text: t( + 'After sending this test event, you should see it appear in your Sentry dashboard, confirming that the PlayStation integration is working correctly.' ), }, ], From ea46a2a746c4f1579350d9fee3d1ae7b8cf1cc3d Mon Sep 17 00:00:00 2001 From: Priscila Oliveira Date: Fri, 25 Jul 2025 10:42:07 +0200 Subject: [PATCH 7/9] feedback --- static/app/gettingStartedDocs/console/playstation.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/static/app/gettingStartedDocs/console/playstation.tsx b/static/app/gettingStartedDocs/console/playstation.tsx index 189de8aa11ff1d..d1de18ebd7fb3c 100644 --- a/static/app/gettingStartedDocs/console/playstation.tsx +++ b/static/app/gettingStartedDocs/console/playstation.tsx @@ -78,8 +78,8 @@ int main(void) { sentry_options_set_dsn(options, "${params.dsn.public}"); sentry_options_set_release(options, "my-project-name@2.3.12"); sentry_options_set_debug(options, 1); - // For further configuration options, including database path, - // see the private repository. + // Example of PlayStation-specific configuration options + // (including database path) are available in the sample folder of the private repository. sentry_init(options); /* ... */ From 067e56783f3e4182a92f5f025d9f135c5ba03ae1 Mon Sep 17 00:00:00 2001 From: Priscila Oliveira Date: Fri, 25 Jul 2025 10:51:35 +0200 Subject: [PATCH 8/9] feedback --- .../console/playstation.tsx | 22 +++++++------------ 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/static/app/gettingStartedDocs/console/playstation.tsx b/static/app/gettingStartedDocs/console/playstation.tsx index d1de18ebd7fb3c..91f74f0985c3be 100644 --- a/static/app/gettingStartedDocs/console/playstation.tsx +++ b/static/app/gettingStartedDocs/console/playstation.tsx @@ -51,7 +51,7 @@ const onboarding: OnboardingConfig = { { type: 'text', text: t( - 'Once you have access, the private repository contains complete instructions for building and integrating the SDK with your engine of choice.' + 'Once the access is granted, you can proceed with the SDK integration.' ), }, ], @@ -63,8 +63,13 @@ const onboarding: OnboardingConfig = { content: [ { type: 'text', - text: t( - 'The PlayStation SDK is designed for standalone engine integration. Initialize the SDK in your application:' + text: tct( + 'The [privateRepositoryLink:private repository] contains complete setup instructions and configuration examples in the sample folder. Here is a basic example of how to initialize the SDK:', + { + privateRepositoryLink: ( + + ), + } ), }, { @@ -88,17 +93,6 @@ int main(void) { sentry_close(); }`, }, - { - type: 'text', - text: tct( - 'For PlayStation-specific configuration options and advanced features, please refer to the documentation in the [privateRepositoryLink:private repository].', - { - privateRepositoryLink: ( - - ), - } - ), - }, ], }, ], From b9c2a51c6292c61f4f209066aa7d0fd6041a42c4 Mon Sep 17 00:00:00 2001 From: Priscila Oliveira Date: Mon, 28 Jul 2025 08:56:11 +0200 Subject: [PATCH 9/9] feedback --- .../modals/privateGamingSdkAccessModal.tsx | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/static/app/components/modals/privateGamingSdkAccessModal.tsx b/static/app/components/modals/privateGamingSdkAccessModal.tsx index 32d9f15cb7ae19..094cbc50da4894 100644 --- a/static/app/components/modals/privateGamingSdkAccessModal.tsx +++ b/static/app/components/modals/privateGamingSdkAccessModal.tsx @@ -1,4 +1,4 @@ -import {Fragment, useCallback, useState} from 'react'; +import {Fragment, useState} from 'react'; import {captureFeedback} from '@sentry/react'; import {addSuccessMessage} from 'sentry/actionCreators/indicator'; @@ -47,7 +47,7 @@ export function PrivateGamingSdkAccessModal({ const isFormValid = !!githubProfile.trim() && gamingPlatforms.length > 0; - const handleSubmit = useCallback(() => { + function handleSubmit() { if (!isFormValid) { return; } @@ -105,17 +105,7 @@ export function PrivateGamingSdkAccessModal({ ); setIsSubmitting(false); closeModal(); - }, [ - isFormValid, - githubProfile, - organization, - sdkName, - user, - gamingPlatforms, - closeModal, - onSubmit, - projectSlug, - ]); + } return (