Skip to content

[STUD-578][Enhancement]: Update Marketplace Tab with refined alert copy, page content, and limited functionality - #977

Merged
ITurres merged 2 commits into
masterfrom
STUD-578-Update-Marketplace-Tab-with-refined-alert-copy-page-content-and-limited-functionality
Feb 20, 2026
Merged

ITurres merged 2 commits into
masterfrom
STUD-578-Update-Marketplace-Tab-with-refined-alert-copy-page-content-and-limited-functionality

Conversation

@ITurres

@ITurres ITurres commented Feb 19, 2026 •

Copy link
Copy Markdown
Member

Pull Request — Issue STUD-578

Overview

This PR gates Marketplace Tab sale creation and copy updates behind the
webStudioDisableDistributionAndSales feature flag while keeping end-sale
functionality available during the wind-down period.
Context: prevent new stream token sales while still allowing artists to end
existing sales and access the official statement.


Files Summary

Total Changes: [3 files]
(Counts of added, modified, and deleted files can be seen in the PR diff view.)

Modified (3)
  • apps/studio/src/pages/home/releases/MarketplaceTab/ConnectWallet.tsx
    • — Add flag-gated alert copy for wallet connection states.
  • apps/studio/src/pages/home/releases/MarketplaceTab/CreateSale.tsx
    • — Gate create-sale form fields and CTA; add disabled tooltip with
      official-statement messaging.
  • apps/studio/src/pages/home/releases/MarketplaceTab/ActiveSale.tsx
    • — Gate active-sale alert copy and button styles for the wind-down period.

Impact

  • Stream token sale creation is disabled when the feature flag is on.
  • Marketplace Tab copy is updated for wallet/connect, no-sale, and active-sale
    states under the flag.
  • End-sale flow and marketplace link remain available and emphasized.

Testing

  • Not run (UI change only).

Related Issues


Dependencies

  • No new dependencies.

Demo

Figma order

STUD-758-1 STUD-758-2 STUD-758-3 STUD-758-4

Additional Notes

  • TODO comments note temporary flag-gated UI for later cleanup.

--END--

…tion halt flag

flag = 'webStudioDisableDistributionAndSales'.

Updates Marketplace Tab states and copy for wallet connection and active sales,
disables new sale creation with official-statement tooltip, and keeps
end-sale flow intact.
@ITurres ITurres self-assigned this Feb 19, 2026
@ITurres
ITurres requested a review from a team as a code owner February 19, 2026 14:28
@github-actions

Copy link
Copy Markdown

Visit the studio preview URL for this PR 🚀 : https://977.artist.preview.newm.io/

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the Studio Marketplace tab to support the wind-down period by gating sale creation UI and updating Marketplace-related copy behind the webStudioDisableDistributionAndSales feature flag, while keeping end-sale functionality available.

Changes:

  • Add webStudioDisableDistributionAndSales flag branching to Marketplace tab views (connect wallet / create sale / active sale).
  • Disable/hide create-sale inputs and CTA under the flag and surface the official-statement CTA via tooltip.
  • Update active-sale messaging and button styling under the flag while preserving the end-sale flow.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.

File Description
apps/studio/src/pages/home/releases/MarketplaceTab/ConnectWallet.tsx Adds flag-gated alert copy for wallet connection state.
apps/studio/src/pages/home/releases/MarketplaceTab/CreateSale.tsx Gates create-sale form fields/CTA behind the flag and adds official-statement tooltip messaging.
apps/studio/src/pages/home/releases/MarketplaceTab/ActiveSale.tsx Adjusts active-sale copy and button rendering/styling under the flag while keeping end-sale available.
Comments suppressed due to low confidence (5)

apps/studio/src/pages/home/releases/MarketplaceTab/ConnectWallet.tsx:54

  • In the non-flag path, the Alert copy Typography no longer sets the blue text color that was previously applied (theme.colors.blue). If the intent is to keep the existing styling when the feature flag is off, re-add the color prop (or apply the color at the Alert level) so only the flagged copy/styling changes.
          <Typography fontWeight={ 500 } variant="subtitle1">
            { wallet
              ? "Your current wallet does not contain this track's stream " +
                "tokens. To manage sales on the Marketplace, please first " +
                "connect a wallet containing stream tokens for this track."

apps/studio/src/pages/home/releases/MarketplaceTab/ConnectWallet.tsx:25

  • This multiline template literal includes a newline/indentation and is missing terminal punctuation, which can render with awkward spacing in the UI. Prefer a single-line string (or explicit concatenation) so the message renders consistently.
    <Typography fontWeight={ 500 } variant="subtitle1">
      { wallet
        ? `Your current wallet does not contain this track's stream tokens.
            Please connect a wallet containing stream tokens for this track`
        : "Please connect a wallet containing stream tokens for this track." }

apps/studio/src/pages/home/releases/MarketplaceTab/ActiveSale.tsx:41

  • Links opened with target="_blank" should include rel="noopener noreferrer" to prevent reverse-tabnabbing and avoid leaking the opener window reference.
        component="a"
        href={ `${NEWM_MARKETPLACE_URL}/sale/${saleId}/` }
        target="_blank"
        variant="secondary"
        width="compact"

apps/studio/src/pages/home/releases/MarketplaceTab/ActiveSale.tsx:133

  • Links opened with target="_blank" should include rel="noopener noreferrer" to prevent reverse-tabnabbing and avoid leaking the opener window reference.
              component="a"
              href={ `${NEWM_MARKETPLACE_URL}/sale/${saleId}/` }
              target="_blank"
              width="compact"
            >

apps/studio/src/pages/home/releases/MarketplaceTab/ActiveSale.tsx:124

  • Since this component returns null when sale is falsy and Sale.id is required, passing saleId ?? "" can mask unexpected states and can produce an invalid Marketplace URL (/sale//). Prefer deriving saleId after the null check (or pass sale.id directly) and avoid the empty-string fallback.
          <SundownButtons
            isEndSaleLoading={ isEndSaleLoading }
            saleId={ saleId ?? "" }
            setIsEndSaleModalOpen={ setIsEndSaleModalOpen }

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@dmkirshon dmkirshon left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, made a comment on the Jira ticket for some potential additional copy changes in this flow.

@ITurres
ITurres merged commit f14b8b9 into master Feb 20, 2026
8 checks passed
@ITurres
ITurres deleted the STUD-578-Update-Marketplace-Tab-with-refined-alert-copy-page-content-and-limited-functionality branch February 20, 2026 16:46
@ITurres ITurres mentioned this pull request Feb 20, 2026
ITurres added a commit that referenced this pull request Feb 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants