Skip to content

[API-261] Fire async share action when opening the share modal/drawer for content - #12492

Merged
schottra merged 1 commit into
mainfrom
add-shares-to-client
Jul 10, 2025
Merged

[API-261] Fire async share action when opening the share modal/drawer for content#12492
schottra merged 1 commit into
mainfrom
add-shares-to-client

Conversation

@schottra

Copy link
Copy Markdown
Contributor

Description

This uses the new EntityManager action for sending a "share" action. Decided it's easiest to just treat the intention to share as a signal. So using an effect whenever the content id changes to send a new event (i.e. when the user opens the modal/drawer).

How Has This Been Tested?

Using local client against staging, open the share modal for a track/playlist and watch the console logs for entity manager.
Also looking up the new items in the DB to make sure they get indexed.

@dylanjeffersdylanjeffers 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 great!

if (
!userId ||
!entityId ||
entityId <= 0 ||

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.

probably fine to just do basic checking like useId, entityId since ideally typescript handles the rest?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Yeah I guess the entityType check can go.
The other ones I know in various places we use or did use 0 or negative values for logged out or uninitialized states and I just wanted to avoid spamming entity manager in those cases? TS isn't going to help us runtime check the actual values that get passed 🤷

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.

yeah thats fair ^ i think ideally we fix when we are passing 0 or negative, which i think has been fully covered with tan-query stuff, but up to you

])

// Trigger share action on mount with new content
useEffect(() => {

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.

nice

@schottra
schottra merged commit 2c8aa30 into mainJul 10, 2025
@schottra
schottra deleted the add-shares-to-client branch July 10, 2025 19:47
audius-infra pushed a commit that referenced this pull request Jul 12, 2025
[1cd89dc] [PE-6512] Hex USDC Logos (#12522) Reed
[82780e3] Drop smart collections, old explore (#12516) Dylan Jeffers
[73dd687] Fix follower count formatting (#12520) JD Francis
[5c2a3f9] [PE-6503] Add highlighting for comment replies (#12519) KJ
[371ab90] [PE-6506] Artist coin message blast UI (#12518) Reed
[afd0b16] Drop coming soon offline mode features (#12514) Dylan Jeffers
[9bd6f7d] Fix purchase complete x share button size (#12513) Dylan Jeffers
[9d3a7df] Migrate to UserBadgesV2 on mobile (#12511) Reed
[d479052] Migrate to UserBadgesV2 on web (#12507) Reed
[442ce6d] [PE-6477] BONK badges (#12506) Reed
[99a5a43] [QA-2205] Fix remix section scrolling to top (properly this time) (#12509) JD Francis
[464bdd0] Fix useHighlightComment hook (#12508) KJ
[2c8aa30] [API-261] Fire async share action when opening the share modal/drawer for content (#12492) Randy Schott
[5908ced] [QA-2207] Fix double scrollbars (#12504) JD Francis
[a1b4336] feat: Add BONK token support to backend and SDK (#12489) Farid Salau
[5ab9772] [PE-6460] Add top of section display and highlighting on linked comments (#12501) KJ
[3a223ce] [QA-2205] Fix remix section scroll to top bug (#12503) JD Francis
[543ee7e] feat: Add core token registry infrastructure (#12488) Farid Salau
[0b788ef] Fix scrolling in recent searches (#12500) Isaac Solo
[2d5426c] Fix guest account issues (#12496) JD Francis
[8e17858] [QA-2209] Fix track replace crashing app (#12497) JD Francis
[b066b17] Fix wrong amounts for USDC purchase buyer notifs (#12494) Reed
[d34e011] [PE-6458] Update SDK and getComment hook (#12487) KJ
[eddb083] [QA-2185] Fix user link flow (#12476) Dylan Jeffers
[bccc9b7] [PE-6492] Mobile hex tokens (#12491) Reed
[fa34cca] Don't use call with queryClient in sagas (#12486) Reed
[15bba9a] Fix mobile profile navving to reposts tab for artists sometimes (#12478) JD Francis
[45b2bde] Fix search result scroll cutoff (#12484) Isaac Solo
[1a08b32] [PE-6476] Web hexagonal token icons (#12480) Reed
[f878d8f] Fix podcast playback rate on mobile (#12475) Dylan Jeffers
[0f78928] [PE-6466] Fix /user network spam on app start (#12450) JD Francis
[19208ad] [QA-2192] Fix social link spacing (#12474) Dylan Jeffers
[0dfd7d0] Fix X icon color on mobile (#12479) Reed
[bad4d5f] Search explore milestone 2: for you, recent premium, best selling (#12467) Isaac Solo
[f780db4] [PE-6421] Improve ProfileScreen render time by ~50% (#12470) JD Francis
[1d20005] Remove ToS banner update (#12473) Ray Jacobson
[c5f8442] [HOTFIX] Small ui bugs - UserLink margin & trending playlist indices (#12472) JD Francis
[27aadc3] Add mobile web search explore (#12456) Isaac Solo
[8d2627f] [PE-6485] Add track tile integration tests (#12466) Dylan Jeffers
[bdc3982] [PE-6489] Make buy/sell work on stage (#12471) Farid Salau
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@schottra@dylanjeffers
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
[API-261] Fire async share action when opening the share modal/drawer for content by schottra · Pull Request #12492 · AudiusProject/apps · GitHub
Skip to content

[API-261] Fire async share action when opening the share modal/drawer for content - #12492

Merged
schottra merged 1 commit into
mainfrom
add-shares-to-client
Jul 10, 2025
Merged

[API-261] Fire async share action when opening the share modal/drawer for content#12492
schottra merged 1 commit into
mainfrom
add-shares-to-client

Conversation

@schottra

Copy link
Copy Markdown
Contributor

Description

This uses the new EntityManager action for sending a "share" action. Decided it's easiest to just treat the intention to share as a signal. So using an effect whenever the content id changes to send a new event (i.e. when the user opens the modal/drawer).

How Has This Been Tested?

Using local client against staging, open the share modal for a track/playlist and watch the console logs for entity manager.
Also looking up the new items in the DB to make sure they get indexed.

@dylanjeffersdylanjeffers 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 great!

if (
!userId ||
!entityId ||
entityId <= 0 ||

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.

probably fine to just do basic checking like useId, entityId since ideally typescript handles the rest?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Yeah I guess the entityType check can go.
The other ones I know in various places we use or did use 0 or negative values for logged out or uninitialized states and I just wanted to avoid spamming entity manager in those cases? TS isn't going to help us runtime check the actual values that get passed 🤷

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.

yeah thats fair ^ i think ideally we fix when we are passing 0 or negative, which i think has been fully covered with tan-query stuff, but up to you

])

// Trigger share action on mount with new content
useEffect(() => {

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.

nice

@schottra
schottra merged commit 2c8aa30 into mainJul 10, 2025
@schottra
schottra deleted the add-shares-to-client branch July 10, 2025 19:47
audius-infra pushed a commit that referenced this pull request Jul 12, 2025
[1cd89dc] [PE-6512] Hex USDC Logos (#12522) Reed
[82780e3] Drop smart collections, old explore (#12516) Dylan Jeffers
[73dd687] Fix follower count formatting (#12520) JD Francis
[5c2a3f9] [PE-6503] Add highlighting for comment replies (#12519) KJ
[371ab90] [PE-6506] Artist coin message blast UI (#12518) Reed
[afd0b16] Drop coming soon offline mode features (#12514) Dylan Jeffers
[9bd6f7d] Fix purchase complete x share button size (#12513) Dylan Jeffers
[9d3a7df] Migrate to UserBadgesV2 on mobile (#12511) Reed
[d479052] Migrate to UserBadgesV2 on web (#12507) Reed
[442ce6d] [PE-6477] BONK badges (#12506) Reed
[99a5a43] [QA-2205] Fix remix section scrolling to top (properly this time) (#12509) JD Francis
[464bdd0] Fix useHighlightComment hook (#12508) KJ
[2c8aa30] [API-261] Fire async share action when opening the share modal/drawer for content (#12492) Randy Schott
[5908ced] [QA-2207] Fix double scrollbars (#12504) JD Francis
[a1b4336] feat: Add BONK token support to backend and SDK (#12489) Farid Salau
[5ab9772] [PE-6460] Add top of section display and highlighting on linked comments (#12501) KJ
[3a223ce] [QA-2205] Fix remix section scroll to top bug (#12503) JD Francis
[543ee7e] feat: Add core token registry infrastructure (#12488) Farid Salau
[0b788ef] Fix scrolling in recent searches (#12500) Isaac Solo
[2d5426c] Fix guest account issues (#12496) JD Francis
[8e17858] [QA-2209] Fix track replace crashing app (#12497) JD Francis
[b066b17] Fix wrong amounts for USDC purchase buyer notifs (#12494) Reed
[d34e011] [PE-6458] Update SDK and getComment hook (#12487) KJ
[eddb083] [QA-2185] Fix user link flow (#12476) Dylan Jeffers
[bccc9b7] [PE-6492] Mobile hex tokens (#12491) Reed
[fa34cca] Don't use call with queryClient in sagas (#12486) Reed
[15bba9a] Fix mobile profile navving to reposts tab for artists sometimes (#12478) JD Francis
[45b2bde] Fix search result scroll cutoff (#12484) Isaac Solo
[1a08b32] [PE-6476] Web hexagonal token icons (#12480) Reed
[f878d8f] Fix podcast playback rate on mobile (#12475) Dylan Jeffers
[0f78928] [PE-6466] Fix /user network spam on app start (#12450) JD Francis
[19208ad] [QA-2192] Fix social link spacing (#12474) Dylan Jeffers
[0dfd7d0] Fix X icon color on mobile (#12479) Reed
[bad4d5f] Search explore milestone 2: for you, recent premium, best selling (#12467) Isaac Solo
[f780db4] [PE-6421] Improve ProfileScreen render time by ~50% (#12470) JD Francis
[1d20005] Remove ToS banner update (#12473) Ray Jacobson
[c5f8442] [HOTFIX] Small ui bugs - UserLink margin & trending playlist indices (#12472) JD Francis
[27aadc3] Add mobile web search explore (#12456) Isaac Solo
[8d2627f] [PE-6485] Add track tile integration tests (#12466) Dylan Jeffers
[bdc3982] [PE-6489] Make buy/sell work on stage (#12471) Farid Salau
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@schottra@dylanjeffers
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' [API-261] Fire async share action when opening the share modal/drawer for content by schottra · Pull Request #12492 · AudiusProject/apps · GitHub
Skip to content

[API-261] Fire async share action when opening the share modal/drawer for content - #12492

Merged
schottra merged 1 commit into
mainfrom
add-shares-to-client
Jul 10, 2025
Merged

[API-261] Fire async share action when opening the share modal/drawer for content#12492
schottra merged 1 commit into
mainfrom
add-shares-to-client

Conversation

@schottra

Copy link
Copy Markdown
Contributor

Description

This uses the new EntityManager action for sending a "share" action. Decided it's easiest to just treat the intention to share as a signal. So using an effect whenever the content id changes to send a new event (i.e. when the user opens the modal/drawer).

How Has This Been Tested?

Using local client against staging, open the share modal for a track/playlist and watch the console logs for entity manager.
Also looking up the new items in the DB to make sure they get indexed.

@dylanjeffersdylanjeffers 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 great!

if (
!userId ||
!entityId ||
entityId <= 0 ||

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.

probably fine to just do basic checking like useId, entityId since ideally typescript handles the rest?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Yeah I guess the entityType check can go.
The other ones I know in various places we use or did use 0 or negative values for logged out or uninitialized states and I just wanted to avoid spamming entity manager in those cases? TS isn't going to help us runtime check the actual values that get passed 🤷

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.

yeah thats fair ^ i think ideally we fix when we are passing 0 or negative, which i think has been fully covered with tan-query stuff, but up to you

])

// Trigger share action on mount with new content
useEffect(() => {

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.

nice

@schottra
schottra merged commit 2c8aa30 into mainJul 10, 2025
@schottra
schottra deleted the add-shares-to-client branch July 10, 2025 19:47
audius-infra pushed a commit that referenced this pull request Jul 12, 2025
[1cd89dc] [PE-6512] Hex USDC Logos (#12522) Reed
[82780e3] Drop smart collections, old explore (#12516) Dylan Jeffers
[73dd687] Fix follower count formatting (#12520) JD Francis
[5c2a3f9] [PE-6503] Add highlighting for comment replies (#12519) KJ
[371ab90] [PE-6506] Artist coin message blast UI (#12518) Reed
[afd0b16] Drop coming soon offline mode features (#12514) Dylan Jeffers
[9bd6f7d] Fix purchase complete x share button size (#12513) Dylan Jeffers
[9d3a7df] Migrate to UserBadgesV2 on mobile (#12511) Reed
[d479052] Migrate to UserBadgesV2 on web (#12507) Reed
[442ce6d] [PE-6477] BONK badges (#12506) Reed
[99a5a43] [QA-2205] Fix remix section scrolling to top (properly this time) (#12509) JD Francis
[464bdd0] Fix useHighlightComment hook (#12508) KJ
[2c8aa30] [API-261] Fire async share action when opening the share modal/drawer for content (#12492) Randy Schott
[5908ced] [QA-2207] Fix double scrollbars (#12504) JD Francis
[a1b4336] feat: Add BONK token support to backend and SDK (#12489) Farid Salau
[5ab9772] [PE-6460] Add top of section display and highlighting on linked comments (#12501) KJ
[3a223ce] [QA-2205] Fix remix section scroll to top bug (#12503) JD Francis
[543ee7e] feat: Add core token registry infrastructure (#12488) Farid Salau
[0b788ef] Fix scrolling in recent searches (#12500) Isaac Solo
[2d5426c] Fix guest account issues (#12496) JD Francis
[8e17858] [QA-2209] Fix track replace crashing app (#12497) JD Francis
[b066b17] Fix wrong amounts for USDC purchase buyer notifs (#12494) Reed
[d34e011] [PE-6458] Update SDK and getComment hook (#12487) KJ
[eddb083] [QA-2185] Fix user link flow (#12476) Dylan Jeffers
[bccc9b7] [PE-6492] Mobile hex tokens (#12491) Reed
[fa34cca] Don't use call with queryClient in sagas (#12486) Reed
[15bba9a] Fix mobile profile navving to reposts tab for artists sometimes (#12478) JD Francis
[45b2bde] Fix search result scroll cutoff (#12484) Isaac Solo
[1a08b32] [PE-6476] Web hexagonal token icons (#12480) Reed
[f878d8f] Fix podcast playback rate on mobile (#12475) Dylan Jeffers
[0f78928] [PE-6466] Fix /user network spam on app start (#12450) JD Francis
[19208ad] [QA-2192] Fix social link spacing (#12474) Dylan Jeffers
[0dfd7d0] Fix X icon color on mobile (#12479) Reed
[bad4d5f] Search explore milestone 2: for you, recent premium, best selling (#12467) Isaac Solo
[f780db4] [PE-6421] Improve ProfileScreen render time by ~50% (#12470) JD Francis
[1d20005] Remove ToS banner update (#12473) Ray Jacobson
[c5f8442] [HOTFIX] Small ui bugs - UserLink margin & trending playlist indices (#12472) JD Francis
[27aadc3] Add mobile web search explore (#12456) Isaac Solo
[8d2627f] [PE-6485] Add track tile integration tests (#12466) Dylan Jeffers
[bdc3982] [PE-6489] Make buy/sell work on stage (#12471) Farid Salau
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@schottra@dylanjeffers
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' [API-261] Fire async share action when opening the share modal/drawer for content by schottra · Pull Request #12492 · AudiusProject/apps · GitHub
Skip to content

[API-261] Fire async share action when opening the share modal/drawer for content - #12492

Merged
schottra merged 1 commit into
mainfrom
add-shares-to-client
Jul 10, 2025
Merged

[API-261] Fire async share action when opening the share modal/drawer for content#12492
schottra merged 1 commit into
mainfrom
add-shares-to-client

Conversation

@schottra

Copy link
Copy Markdown
Contributor

Description

This uses the new EntityManager action for sending a "share" action. Decided it's easiest to just treat the intention to share as a signal. So using an effect whenever the content id changes to send a new event (i.e. when the user opens the modal/drawer).

How Has This Been Tested?

Using local client against staging, open the share modal for a track/playlist and watch the console logs for entity manager.
Also looking up the new items in the DB to make sure they get indexed.

@dylanjeffersdylanjeffers 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 great!

if (
!userId ||
!entityId ||
entityId <= 0 ||

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.

probably fine to just do basic checking like useId, entityId since ideally typescript handles the rest?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Yeah I guess the entityType check can go.
The other ones I know in various places we use or did use 0 or negative values for logged out or uninitialized states and I just wanted to avoid spamming entity manager in those cases? TS isn't going to help us runtime check the actual values that get passed 🤷

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.

yeah thats fair ^ i think ideally we fix when we are passing 0 or negative, which i think has been fully covered with tan-query stuff, but up to you

])

// Trigger share action on mount with new content
useEffect(() => {

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.

nice

@schottra
schottra merged commit 2c8aa30 into mainJul 10, 2025
@schottra
schottra deleted the add-shares-to-client branch July 10, 2025 19:47
audius-infra pushed a commit that referenced this pull request Jul 12, 2025
[1cd89dc] [PE-6512] Hex USDC Logos (#12522) Reed
[82780e3] Drop smart collections, old explore (#12516) Dylan Jeffers
[73dd687] Fix follower count formatting (#12520) JD Francis
[5c2a3f9] [PE-6503] Add highlighting for comment replies (#12519) KJ
[371ab90] [PE-6506] Artist coin message blast UI (#12518) Reed
[afd0b16] Drop coming soon offline mode features (#12514) Dylan Jeffers
[9bd6f7d] Fix purchase complete x share button size (#12513) Dylan Jeffers
[9d3a7df] Migrate to UserBadgesV2 on mobile (#12511) Reed
[d479052] Migrate to UserBadgesV2 on web (#12507) Reed
[442ce6d] [PE-6477] BONK badges (#12506) Reed
[99a5a43] [QA-2205] Fix remix section scrolling to top (properly this time) (#12509) JD Francis
[464bdd0] Fix useHighlightComment hook (#12508) KJ
[2c8aa30] [API-261] Fire async share action when opening the share modal/drawer for content (#12492) Randy Schott
[5908ced] [QA-2207] Fix double scrollbars (#12504) JD Francis
[a1b4336] feat: Add BONK token support to backend and SDK (#12489) Farid Salau
[5ab9772] [PE-6460] Add top of section display and highlighting on linked comments (#12501) KJ
[3a223ce] [QA-2205] Fix remix section scroll to top bug (#12503) JD Francis
[543ee7e] feat: Add core token registry infrastructure (#12488) Farid Salau
[0b788ef] Fix scrolling in recent searches (#12500) Isaac Solo
[2d5426c] Fix guest account issues (#12496) JD Francis
[8e17858] [QA-2209] Fix track replace crashing app (#12497) JD Francis
[b066b17] Fix wrong amounts for USDC purchase buyer notifs (#12494) Reed
[d34e011] [PE-6458] Update SDK and getComment hook (#12487) KJ
[eddb083] [QA-2185] Fix user link flow (#12476) Dylan Jeffers
[bccc9b7] [PE-6492] Mobile hex tokens (#12491) Reed
[fa34cca] Don't use call with queryClient in sagas (#12486) Reed
[15bba9a] Fix mobile profile navving to reposts tab for artists sometimes (#12478) JD Francis
[45b2bde] Fix search result scroll cutoff (#12484) Isaac Solo
[1a08b32] [PE-6476] Web hexagonal token icons (#12480) Reed
[f878d8f] Fix podcast playback rate on mobile (#12475) Dylan Jeffers
[0f78928] [PE-6466] Fix /user network spam on app start (#12450) JD Francis
[19208ad] [QA-2192] Fix social link spacing (#12474) Dylan Jeffers
[0dfd7d0] Fix X icon color on mobile (#12479) Reed
[bad4d5f] Search explore milestone 2: for you, recent premium, best selling (#12467) Isaac Solo
[f780db4] [PE-6421] Improve ProfileScreen render time by ~50% (#12470) JD Francis
[1d20005] Remove ToS banner update (#12473) Ray Jacobson
[c5f8442] [HOTFIX] Small ui bugs - UserLink margin & trending playlist indices (#12472) JD Francis
[27aadc3] Add mobile web search explore (#12456) Isaac Solo
[8d2627f] [PE-6485] Add track tile integration tests (#12466) Dylan Jeffers
[bdc3982] [PE-6489] Make buy/sell work on stage (#12471) Farid Salau
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@schottra@dylanjeffers
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' [API-261] Fire async share action when opening the share modal/drawer for content by schottra · Pull Request #12492 · AudiusProject/apps · GitHub
Skip to content

[API-261] Fire async share action when opening the share modal/drawer for content - #12492

Merged
schottra merged 1 commit into
mainfrom
add-shares-to-client
Jul 10, 2025
Merged

[API-261] Fire async share action when opening the share modal/drawer for content#12492
schottra merged 1 commit into
mainfrom
add-shares-to-client

Conversation

@schottra

Copy link
Copy Markdown
Contributor

Description

This uses the new EntityManager action for sending a "share" action. Decided it's easiest to just treat the intention to share as a signal. So using an effect whenever the content id changes to send a new event (i.e. when the user opens the modal/drawer).

How Has This Been Tested?

Using local client against staging, open the share modal for a track/playlist and watch the console logs for entity manager.
Also looking up the new items in the DB to make sure they get indexed.

@dylanjeffersdylanjeffers 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 great!

if (
!userId ||
!entityId ||
entityId <= 0 ||

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.

probably fine to just do basic checking like useId, entityId since ideally typescript handles the rest?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Yeah I guess the entityType check can go.
The other ones I know in various places we use or did use 0 or negative values for logged out or uninitialized states and I just wanted to avoid spamming entity manager in those cases? TS isn't going to help us runtime check the actual values that get passed 🤷

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.

yeah thats fair ^ i think ideally we fix when we are passing 0 or negative, which i think has been fully covered with tan-query stuff, but up to you

])

// Trigger share action on mount with new content
useEffect(() => {

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.

nice

@schottra
schottra merged commit 2c8aa30 into mainJul 10, 2025
@schottra
schottra deleted the add-shares-to-client branch July 10, 2025 19:47
audius-infra pushed a commit that referenced this pull request Jul 12, 2025
[1cd89dc] [PE-6512] Hex USDC Logos (#12522) Reed
[82780e3] Drop smart collections, old explore (#12516) Dylan Jeffers
[73dd687] Fix follower count formatting (#12520) JD Francis
[5c2a3f9] [PE-6503] Add highlighting for comment replies (#12519) KJ
[371ab90] [PE-6506] Artist coin message blast UI (#12518) Reed
[afd0b16] Drop coming soon offline mode features (#12514) Dylan Jeffers
[9bd6f7d] Fix purchase complete x share button size (#12513) Dylan Jeffers
[9d3a7df] Migrate to UserBadgesV2 on mobile (#12511) Reed
[d479052] Migrate to UserBadgesV2 on web (#12507) Reed
[442ce6d] [PE-6477] BONK badges (#12506) Reed
[99a5a43] [QA-2205] Fix remix section scrolling to top (properly this time) (#12509) JD Francis
[464bdd0] Fix useHighlightComment hook (#12508) KJ
[2c8aa30] [API-261] Fire async share action when opening the share modal/drawer for content (#12492) Randy Schott
[5908ced] [QA-2207] Fix double scrollbars (#12504) JD Francis
[a1b4336] feat: Add BONK token support to backend and SDK (#12489) Farid Salau
[5ab9772] [PE-6460] Add top of section display and highlighting on linked comments (#12501) KJ
[3a223ce] [QA-2205] Fix remix section scroll to top bug (#12503) JD Francis
[543ee7e] feat: Add core token registry infrastructure (#12488) Farid Salau
[0b788ef] Fix scrolling in recent searches (#12500) Isaac Solo
[2d5426c] Fix guest account issues (#12496) JD Francis
[8e17858] [QA-2209] Fix track replace crashing app (#12497) JD Francis
[b066b17] Fix wrong amounts for USDC purchase buyer notifs (#12494) Reed
[d34e011] [PE-6458] Update SDK and getComment hook (#12487) KJ
[eddb083] [QA-2185] Fix user link flow (#12476) Dylan Jeffers
[bccc9b7] [PE-6492] Mobile hex tokens (#12491) Reed
[fa34cca] Don't use call with queryClient in sagas (#12486) Reed
[15bba9a] Fix mobile profile navving to reposts tab for artists sometimes (#12478) JD Francis
[45b2bde] Fix search result scroll cutoff (#12484) Isaac Solo
[1a08b32] [PE-6476] Web hexagonal token icons (#12480) Reed
[f878d8f] Fix podcast playback rate on mobile (#12475) Dylan Jeffers
[0f78928] [PE-6466] Fix /user network spam on app start (#12450) JD Francis
[19208ad] [QA-2192] Fix social link spacing (#12474) Dylan Jeffers
[0dfd7d0] Fix X icon color on mobile (#12479) Reed
[bad4d5f] Search explore milestone 2: for you, recent premium, best selling (#12467) Isaac Solo
[f780db4] [PE-6421] Improve ProfileScreen render time by ~50% (#12470) JD Francis
[1d20005] Remove ToS banner update (#12473) Ray Jacobson
[c5f8442] [HOTFIX] Small ui bugs - UserLink margin & trending playlist indices (#12472) JD Francis
[27aadc3] Add mobile web search explore (#12456) Isaac Solo
[8d2627f] [PE-6485] Add track tile integration tests (#12466) Dylan Jeffers
[bdc3982] [PE-6489] Make buy/sell work on stage (#12471) Farid Salau
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@schottra@dylanjeffers
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' [API-261] Fire async share action when opening the share modal/drawer for content by schottra · Pull Request #12492 · AudiusProject/apps · GitHub
Skip to content

[API-261] Fire async share action when opening the share modal/drawer for content - #12492

Merged
schottra merged 1 commit into
mainfrom
add-shares-to-client
Jul 10, 2025
Merged

[API-261] Fire async share action when opening the share modal/drawer for content#12492
schottra merged 1 commit into
mainfrom
add-shares-to-client

Conversation

@schottra

Copy link
Copy Markdown
Contributor

Description

This uses the new EntityManager action for sending a "share" action. Decided it's easiest to just treat the intention to share as a signal. So using an effect whenever the content id changes to send a new event (i.e. when the user opens the modal/drawer).

How Has This Been Tested?

Using local client against staging, open the share modal for a track/playlist and watch the console logs for entity manager.
Also looking up the new items in the DB to make sure they get indexed.

@dylanjeffersdylanjeffers 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 great!

if (
!userId ||
!entityId ||
entityId <= 0 ||

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.

probably fine to just do basic checking like useId, entityId since ideally typescript handles the rest?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Yeah I guess the entityType check can go.
The other ones I know in various places we use or did use 0 or negative values for logged out or uninitialized states and I just wanted to avoid spamming entity manager in those cases? TS isn't going to help us runtime check the actual values that get passed 🤷

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.

yeah thats fair ^ i think ideally we fix when we are passing 0 or negative, which i think has been fully covered with tan-query stuff, but up to you

])

// Trigger share action on mount with new content
useEffect(() => {

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.

nice

@schottra
schottra merged commit 2c8aa30 into mainJul 10, 2025
@schottra
schottra deleted the add-shares-to-client branch July 10, 2025 19:47
audius-infra pushed a commit that referenced this pull request Jul 12, 2025
[1cd89dc] [PE-6512] Hex USDC Logos (#12522) Reed
[82780e3] Drop smart collections, old explore (#12516) Dylan Jeffers
[73dd687] Fix follower count formatting (#12520) JD Francis
[5c2a3f9] [PE-6503] Add highlighting for comment replies (#12519) KJ
[371ab90] [PE-6506] Artist coin message blast UI (#12518) Reed
[afd0b16] Drop coming soon offline mode features (#12514) Dylan Jeffers
[9bd6f7d] Fix purchase complete x share button size (#12513) Dylan Jeffers
[9d3a7df] Migrate to UserBadgesV2 on mobile (#12511) Reed
[d479052] Migrate to UserBadgesV2 on web (#12507) Reed
[442ce6d] [PE-6477] BONK badges (#12506) Reed
[99a5a43] [QA-2205] Fix remix section scrolling to top (properly this time) (#12509) JD Francis
[464bdd0] Fix useHighlightComment hook (#12508) KJ
[2c8aa30] [API-261] Fire async share action when opening the share modal/drawer for content (#12492) Randy Schott
[5908ced] [QA-2207] Fix double scrollbars (#12504) JD Francis
[a1b4336] feat: Add BONK token support to backend and SDK (#12489) Farid Salau
[5ab9772] [PE-6460] Add top of section display and highlighting on linked comments (#12501) KJ
[3a223ce] [QA-2205] Fix remix section scroll to top bug (#12503) JD Francis
[543ee7e] feat: Add core token registry infrastructure (#12488) Farid Salau
[0b788ef] Fix scrolling in recent searches (#12500) Isaac Solo
[2d5426c] Fix guest account issues (#12496) JD Francis
[8e17858] [QA-2209] Fix track replace crashing app (#12497) JD Francis
[b066b17] Fix wrong amounts for USDC purchase buyer notifs (#12494) Reed
[d34e011] [PE-6458] Update SDK and getComment hook (#12487) KJ
[eddb083] [QA-2185] Fix user link flow (#12476) Dylan Jeffers
[bccc9b7] [PE-6492] Mobile hex tokens (#12491) Reed
[fa34cca] Don't use call with queryClient in sagas (#12486) Reed
[15bba9a] Fix mobile profile navving to reposts tab for artists sometimes (#12478) JD Francis
[45b2bde] Fix search result scroll cutoff (#12484) Isaac Solo
[1a08b32] [PE-6476] Web hexagonal token icons (#12480) Reed
[f878d8f] Fix podcast playback rate on mobile (#12475) Dylan Jeffers
[0f78928] [PE-6466] Fix /user network spam on app start (#12450) JD Francis
[19208ad] [QA-2192] Fix social link spacing (#12474) Dylan Jeffers
[0dfd7d0] Fix X icon color on mobile (#12479) Reed
[bad4d5f] Search explore milestone 2: for you, recent premium, best selling (#12467) Isaac Solo
[f780db4] [PE-6421] Improve ProfileScreen render time by ~50% (#12470) JD Francis
[1d20005] Remove ToS banner update (#12473) Ray Jacobson
[c5f8442] [HOTFIX] Small ui bugs - UserLink margin & trending playlist indices (#12472) JD Francis
[27aadc3] Add mobile web search explore (#12456) Isaac Solo
[8d2627f] [PE-6485] Add track tile integration tests (#12466) Dylan Jeffers
[bdc3982] [PE-6489] Make buy/sell work on stage (#12471) Farid Salau
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@schottra@dylanjeffers
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' [API-261] Fire async share action when opening the share modal/drawer for content by schottra · Pull Request #12492 · AudiusProject/apps · GitHub
Skip to content

[API-261] Fire async share action when opening the share modal/drawer for content - #12492

Merged
schottra merged 1 commit into
mainfrom
add-shares-to-client
Jul 10, 2025
Merged

[API-261] Fire async share action when opening the share modal/drawer for content#12492
schottra merged 1 commit into
mainfrom
add-shares-to-client

Conversation

@schottra

Copy link
Copy Markdown
Contributor

Description

This uses the new EntityManager action for sending a "share" action. Decided it's easiest to just treat the intention to share as a signal. So using an effect whenever the content id changes to send a new event (i.e. when the user opens the modal/drawer).

How Has This Been Tested?

Using local client against staging, open the share modal for a track/playlist and watch the console logs for entity manager.
Also looking up the new items in the DB to make sure they get indexed.

@dylanjeffersdylanjeffers 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 great!

if (
!userId ||
!entityId ||
entityId <= 0 ||

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.

probably fine to just do basic checking like useId, entityId since ideally typescript handles the rest?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Yeah I guess the entityType check can go.
The other ones I know in various places we use or did use 0 or negative values for logged out or uninitialized states and I just wanted to avoid spamming entity manager in those cases? TS isn't going to help us runtime check the actual values that get passed 🤷

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.

yeah thats fair ^ i think ideally we fix when we are passing 0 or negative, which i think has been fully covered with tan-query stuff, but up to you

])

// Trigger share action on mount with new content
useEffect(() => {

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.

nice

@schottra
schottra merged commit 2c8aa30 into mainJul 10, 2025
@schottra
schottra deleted the add-shares-to-client branch July 10, 2025 19:47
audius-infra pushed a commit that referenced this pull request Jul 12, 2025
[1cd89dc] [PE-6512] Hex USDC Logos (#12522) Reed
[82780e3] Drop smart collections, old explore (#12516) Dylan Jeffers
[73dd687] Fix follower count formatting (#12520) JD Francis
[5c2a3f9] [PE-6503] Add highlighting for comment replies (#12519) KJ
[371ab90] [PE-6506] Artist coin message blast UI (#12518) Reed
[afd0b16] Drop coming soon offline mode features (#12514) Dylan Jeffers
[9bd6f7d] Fix purchase complete x share button size (#12513) Dylan Jeffers
[9d3a7df] Migrate to UserBadgesV2 on mobile (#12511) Reed
[d479052] Migrate to UserBadgesV2 on web (#12507) Reed
[442ce6d] [PE-6477] BONK badges (#12506) Reed
[99a5a43] [QA-2205] Fix remix section scrolling to top (properly this time) (#12509) JD Francis
[464bdd0] Fix useHighlightComment hook (#12508) KJ
[2c8aa30] [API-261] Fire async share action when opening the share modal/drawer for content (#12492) Randy Schott
[5908ced] [QA-2207] Fix double scrollbars (#12504) JD Francis
[a1b4336] feat: Add BONK token support to backend and SDK (#12489) Farid Salau
[5ab9772] [PE-6460] Add top of section display and highlighting on linked comments (#12501) KJ
[3a223ce] [QA-2205] Fix remix section scroll to top bug (#12503) JD Francis
[543ee7e] feat: Add core token registry infrastructure (#12488) Farid Salau
[0b788ef] Fix scrolling in recent searches (#12500) Isaac Solo
[2d5426c] Fix guest account issues (#12496) JD Francis
[8e17858] [QA-2209] Fix track replace crashing app (#12497) JD Francis
[b066b17] Fix wrong amounts for USDC purchase buyer notifs (#12494) Reed
[d34e011] [PE-6458] Update SDK and getComment hook (#12487) KJ
[eddb083] [QA-2185] Fix user link flow (#12476) Dylan Jeffers
[bccc9b7] [PE-6492] Mobile hex tokens (#12491) Reed
[fa34cca] Don't use call with queryClient in sagas (#12486) Reed
[15bba9a] Fix mobile profile navving to reposts tab for artists sometimes (#12478) JD Francis
[45b2bde] Fix search result scroll cutoff (#12484) Isaac Solo
[1a08b32] [PE-6476] Web hexagonal token icons (#12480) Reed
[f878d8f] Fix podcast playback rate on mobile (#12475) Dylan Jeffers
[0f78928] [PE-6466] Fix /user network spam on app start (#12450) JD Francis
[19208ad] [QA-2192] Fix social link spacing (#12474) Dylan Jeffers
[0dfd7d0] Fix X icon color on mobile (#12479) Reed
[bad4d5f] Search explore milestone 2: for you, recent premium, best selling (#12467) Isaac Solo
[f780db4] [PE-6421] Improve ProfileScreen render time by ~50% (#12470) JD Francis
[1d20005] Remove ToS banner update (#12473) Ray Jacobson
[c5f8442] [HOTFIX] Small ui bugs - UserLink margin & trending playlist indices (#12472) JD Francis
[27aadc3] Add mobile web search explore (#12456) Isaac Solo
[8d2627f] [PE-6485] Add track tile integration tests (#12466) Dylan Jeffers
[bdc3982] [PE-6489] Make buy/sell work on stage (#12471) Farid Salau
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@schottra@dylanjeffers
, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); [API-261] Fire async share action when opening the share modal/drawer for content by schottra · Pull Request #12492 · AudiusProject/apps · GitHub
Skip to content

[API-261] Fire async share action when opening the share modal/drawer for content - #12492

Merged
schottra merged 1 commit into
mainfrom
add-shares-to-client
Jul 10, 2025
Merged

[API-261] Fire async share action when opening the share modal/drawer for content#12492
schottra merged 1 commit into
mainfrom
add-shares-to-client

Conversation

@schottra

Copy link
Copy Markdown
Contributor

Description

This uses the new EntityManager action for sending a "share" action. Decided it's easiest to just treat the intention to share as a signal. So using an effect whenever the content id changes to send a new event (i.e. when the user opens the modal/drawer).

How Has This Been Tested?

Using local client against staging, open the share modal for a track/playlist and watch the console logs for entity manager.
Also looking up the new items in the DB to make sure they get indexed.

@dylanjeffersdylanjeffers 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 great!

if (
!userId ||
!entityId ||
entityId <= 0 ||

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.

probably fine to just do basic checking like useId, entityId since ideally typescript handles the rest?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Yeah I guess the entityType check can go.
The other ones I know in various places we use or did use 0 or negative values for logged out or uninitialized states and I just wanted to avoid spamming entity manager in those cases? TS isn't going to help us runtime check the actual values that get passed 🤷

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.

yeah thats fair ^ i think ideally we fix when we are passing 0 or negative, which i think has been fully covered with tan-query stuff, but up to you

])

// Trigger share action on mount with new content
useEffect(() => {

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.

nice

@schottra
schottra merged commit 2c8aa30 into mainJul 10, 2025
@schottra
schottra deleted the add-shares-to-client branch July 10, 2025 19:47
audius-infra pushed a commit that referenced this pull request Jul 12, 2025
[1cd89dc] [PE-6512] Hex USDC Logos (#12522) Reed
[82780e3] Drop smart collections, old explore (#12516) Dylan Jeffers
[73dd687] Fix follower count formatting (#12520) JD Francis
[5c2a3f9] [PE-6503] Add highlighting for comment replies (#12519) KJ
[371ab90] [PE-6506] Artist coin message blast UI (#12518) Reed
[afd0b16] Drop coming soon offline mode features (#12514) Dylan Jeffers
[9bd6f7d] Fix purchase complete x share button size (#12513) Dylan Jeffers
[9d3a7df] Migrate to UserBadgesV2 on mobile (#12511) Reed
[d479052] Migrate to UserBadgesV2 on web (#12507) Reed
[442ce6d] [PE-6477] BONK badges (#12506) Reed
[99a5a43] [QA-2205] Fix remix section scrolling to top (properly this time) (#12509) JD Francis
[464bdd0] Fix useHighlightComment hook (#12508) KJ
[2c8aa30] [API-261] Fire async share action when opening the share modal/drawer for content (#12492) Randy Schott
[5908ced] [QA-2207] Fix double scrollbars (#12504) JD Francis
[a1b4336] feat: Add BONK token support to backend and SDK (#12489) Farid Salau
[5ab9772] [PE-6460] Add top of section display and highlighting on linked comments (#12501) KJ
[3a223ce] [QA-2205] Fix remix section scroll to top bug (#12503) JD Francis
[543ee7e] feat: Add core token registry infrastructure (#12488) Farid Salau
[0b788ef] Fix scrolling in recent searches (#12500) Isaac Solo
[2d5426c] Fix guest account issues (#12496) JD Francis
[8e17858] [QA-2209] Fix track replace crashing app (#12497) JD Francis
[b066b17] Fix wrong amounts for USDC purchase buyer notifs (#12494) Reed
[d34e011] [PE-6458] Update SDK and getComment hook (#12487) KJ
[eddb083] [QA-2185] Fix user link flow (#12476) Dylan Jeffers
[bccc9b7] [PE-6492] Mobile hex tokens (#12491) Reed
[fa34cca] Don't use call with queryClient in sagas (#12486) Reed
[15bba9a] Fix mobile profile navving to reposts tab for artists sometimes (#12478) JD Francis
[45b2bde] Fix search result scroll cutoff (#12484) Isaac Solo
[1a08b32] [PE-6476] Web hexagonal token icons (#12480) Reed
[f878d8f] Fix podcast playback rate on mobile (#12475) Dylan Jeffers
[0f78928] [PE-6466] Fix /user network spam on app start (#12450) JD Francis
[19208ad] [QA-2192] Fix social link spacing (#12474) Dylan Jeffers
[0dfd7d0] Fix X icon color on mobile (#12479) Reed
[bad4d5f] Search explore milestone 2: for you, recent premium, best selling (#12467) Isaac Solo
[f780db4] [PE-6421] Improve ProfileScreen render time by ~50% (#12470) JD Francis
[1d20005] Remove ToS banner update (#12473) Ray Jacobson
[c5f8442] [HOTFIX] Small ui bugs - UserLink margin & trending playlist indices (#12472) JD Francis
[27aadc3] Add mobile web search explore (#12456) Isaac Solo
[8d2627f] [PE-6485] Add track tile integration tests (#12466) Dylan Jeffers
[bdc3982] [PE-6489] Make buy/sell work on stage (#12471) Farid Salau
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@schottra@dylanjeffers