this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

ui: move 'View public profile' into form action row; disable sky effects on /developer-resources

- The View public profile link now sits inside the form action row,
between Update profile and Remove from Explore — reads as the
natural read-only complement to the destructive actions. Pulled
the standalone link (and its one-off CSS) out of manage.tsx and
passed publicProfileHandle through to the island.
- /developer-resources now joins /explore in the "effects off" set:
sky-static is force-applied server-side and the Effects toggle in
the nav strip is hidden. Page is reference material — the parallax
competed with reading.

Made-with: Cursor

+37 -40
-16
assets/styles.css
··· 2215 2215 text-align: right; 2216 2216 } 2217 2217 2218 - /* "View public profile" link rendered below the form once the profile 2219 - * is live in the registry. Wraps the secondary button so we can centre 2220 - * it without affecting the form layout above. */ 2221 - .manage-view-public { 2222 - display: flex; 2223 - justify-content: center; 2224 - margin-top: 1.75rem; 2225 - } 2226 - 2227 - .manage-view-public-link { 2228 - display: inline-flex; 2229 - align-items: center; 2230 - gap: 0.5rem; 2231 - text-decoration: none; 2232 - } 2233 - 2234 2218 .profile-form { 2235 2219 padding: 1.75rem; 2236 2220 border-radius: 24px;
+29 -1
islands/CreateProfileForm.tsx
··· 37 37 /** Whether the registry currently has a published record for this user. 38 38 * Drives the live/inactive status pill at the top of the form. */ 39 39 initialPublished: boolean; 40 + /** Handle stored on the registry row (may differ from the live PDS 41 + * handle if the user has changed it but not republished). Used to 42 + * link to the public profile from the action row. */ 43 + publicProfileHandle?: string | null; 40 44 } 41 45 42 46 interface BlobRefShape { ··· 116 120 } 117 121 118 122 export default function CreateProfileForm( 119 - { did, handle, initial, initialAvatarUrl, initialPublished }: Props, 123 + { 124 + did, 125 + handle, 126 + initial, 127 + initialAvatarUrl, 128 + initialPublished, 129 + publicProfileHandle, 130 + }: Props, 120 131 ) { 121 132 const t = useT(); 122 133 const tForm = t.forms.profile; ··· 617 628 ? tManage.updateButton 618 629 : tManage.publishButton} 619 630 </button> 631 + {/* 632 + "View public profile" sits between Update and Remove so it 633 + reads as the natural read-only complement to the destructive 634 + actions. We only render it when the user has actually 635 + published (live in registry) AND we know their public handle — 636 + otherwise the link would 404. We use `published.value` so the 637 + link appears immediately after a first-time publish without a 638 + page reload. 639 + */} 640 + {published.value && publicProfileHandle && ( 641 + <a 642 + href={`/explore/${encodeURIComponent(publicProfileHandle)}`} 643 + class="profile-form-button-secondary" 644 + > 645 + {tManage.viewPublicProfile} 646 + </a> 647 + )} 620 648 {published.value && ( 621 649 <button 622 650 type="button"
+7 -4
routes/_app.tsx
··· 252 252 const locale = state.locale; 253 253 const t = getMessages(locale); 254 254 /** 255 - * The dynamic sky / sun / cloud parallax is intentionally disabled on the 256 - * explore section — it competes with content density there. We force-apply 257 - * `sky-static` server-side and hide the user-facing toggle. 255 + * The dynamic sky / sun / cloud parallax is intentionally disabled on 256 + * content-dense pages — it competes with reading. We force-apply 257 + * `sky-static` server-side and hide the user-facing toggle on: 258 + * - /explore and any sub-route 259 + * - /developer-resources (dense reference material) 258 260 */ 259 261 const effectsOff = url.pathname === "/explore" || 260 - url.pathname.startsWith("/explore/"); 262 + url.pathname.startsWith("/explore/") || 263 + url.pathname === "/developer-resources"; 261 264 const htmlClass = effectsOff ? "sky-static" : undefined; 262 265 const bodyClass = effectsOff ? "sky-bg explore-no-effects" : "sky-bg"; 263 266 return (
+1 -19
routes/explore/manage.tsx
··· 157 157 initial={initial} 158 158 initialAvatarUrl={initialAvatarUrl} 159 159 initialPublished={initialPublished} 160 + publicProfileHandle={publicProfileHandle} 160 161 /> 161 162 </div> 162 - 163 - {/* 164 - Only render the "view public profile" link once the profile 165 - actually exists in the registry — there's nothing to view 166 - until the user has hit Publish at least once. We use the 167 - handle from the registry row so it stays correct even if 168 - the user later changes their PDS handle. 169 - */} 170 - {initialPublished && publicProfileHandle && ( 171 - <div class="manage-view-public"> 172 - <a 173 - href={`/explore/${encodeURIComponent(publicProfileHandle)}`} 174 - class="profile-form-button-secondary manage-view-public-link" 175 - > 176 - {explore.manage.viewPublicProfile} 177 - <span aria-hidden="true">→</span> 178 - </a> 179 - </div> 180 - )} 181 163 </div> 182 164 </section> 183 165 <Footer variant="compact" />