Skip to content

fix(social-media,about-psf): make X icon visible, use official PyPI logo, etc.#273

Merged
JacobCoffee merged 5 commits intomainfrom
pymobil-multi-fixes
Apr 25, 2026
Merged

fix(social-media,about-psf): make X icon visible, use official PyPI logo, etc.#273
JacobCoffee merged 5 commits intomainfrom
pymobil-multi-fixes

Conversation

@JacobCoffee
Copy link
Copy Markdown
Member

Three icon issues across the social-media page and About PSF page:

  • The X icon SVG had no fill attribute, so on iOS WebView it could
    render as transparent. Switched the rows from to which inlines the SVG, and gave both the X and Bluesky SVGs
    fill="currentColor" so CSS color: applies. (PYMOBIL-111)
  • The PyPI image rendered with the dark-mode invert filter applied,
    which mangled the multicolor logo. Tagged it with class="pypi" and
    excluded it from the filter. (PYMOBIL-111)
  • About PSF's PyPI row use real logo
  • add ion-text-wrap, prod stuff isnt wrpaping properly
  • add poster list properly from new conference.json data (https://github.com/PyCon/pycon-site/pull/684)

Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com

JacobCoffee and others added 5 commits April 25, 2026 10:30
Three icon issues across the social-media page and About PSF page:

- The X icon SVG had no fill attribute, so on iOS WebView it could
  render as transparent. Switched the rows from <img> to <ion-icon
  src=...> which inlines the SVG, and gave both the X and Bluesky SVGs
  fill="currentColor" so CSS color: applies. (PYMOBIL-111)
- The PyPI image rendered with the dark-mode invert filter applied,
  which mangled the multicolor logo. Tagged it with class="pypi" and
  excluded it from the filter. (PYMOBIL-111)
- About PSF's PyPI row used the generic Ionic cube-outline icon
  instead of the official assets/img/pypi-logo.png we already ship.
  Swapped it and added a .resource-icon style sized to match the
  surrounding ion-icons.

Adjacent ion-text-wrap classes on labels in the same diff hunks come
along with this commit (couldn't be cleanly separated from the icon
swap); they're harmless on their own but properly belong to the
following text-overflow commit.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Text was running off the screen in several places — Help & Safety,
Code of Conduct, sponsor detail descriptions, etc. — because Ionic's
default ion-label sets white-space: nowrap.

- Add class="ion-text-wrap" to list-item labels with description <p>
  on help, coc, and venues-hours pages.
- Add overflow-wrap: anywhere on .sponsor-desc so long URLs and code
  in API-supplied HTML wrap instead of overflowing.
- Add a global rule for ion-content <p>, <li>, ion-card-content, and
  [innerHtml]/[innerHTML] so long unbreakable strings (URLs, code
  snippets, German compound words, etc.) wrap rather than push the
  layout off-screen.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…YMOBIL-113)

The full-width "Fetch latest update" button on the About PyCon US page
was the only path to apply a new live-update bundle. Move that action
into every page's top toolbar so users don't have to navigate to one
specific page to update.

- LiveUpdateService.performAutomaticUpdate() now owns the loader-spin
  + reload flow that used to live on AboutPyconPage.
- The static "1" badge that already appeared next to the menu button
  on 17 pages becomes a tappable cloud-download-outline icon button
  (visible only when needsUpdate is true), wired to that service
  method.
- About PyCon US loses its giant inline update CTA in favor of the
  same toolbar button.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sunday's schedule was showing "Posters" twice — once as the correct
collapsed Poster session at 9:30am, once as a Plenary at 10:00am. The
upstream conference.json mistakenly returns the daily posters block
as kind="plenary" with a name like "Posters (Hall AB)" alongside the
real kind="poster" 5-min slots. The collapse logic only groups
within-kind, so the plenary entry survives as a duplicate.

Filter those out client-side before the schedule is processed. The
fix needs to live here even after pycon-site corrects the upstream
data, since installed apps will keep hitting the old shape until they
update.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…BIL-114)

The "Posters" entry in the schedule used to open a session detail
with only time + location and no body content. Now consume the new
posters[] array from conference.json (added in pycon-site) and:

- Render every poster (title + speaker name + speaker photo) on the
  collapsed Posters session-detail page.
- Tapping a poster row drills into a per-poster session-detail with
  its title, abstract, and full speaker list. Implemented by
  synthesizing a session entry per poster (id "poster-detail-<conf
  key>") so the existing session-detail layout reuses unchanged.
- Register poster authors in the global speakers list with their
  individual poster session attached, so tapping an author lands on
  a populated speaker detail page.
- Compute a distinct .tracks list per speaker so the speaker list /
  search renders one pill per session type when someone has more
  than one (e.g. a Talk and a Poster).
- Make session-detail react to paramMap changes so navigating between
  the collapsed Posters page and an individual poster (same route,
  different param) re-renders.

Photo URLs from the API are relative paths; they go through
resolveSpeakerPhoto so they get the environment.baseUrl prefix.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@JacobCoffee JacobCoffee merged commit 521b4f4 into main Apr 25, 2026
2 checks passed
@JacobCoffee JacobCoffee deleted the pymobil-multi-fixes branch April 25, 2026 15:35
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.

1 participant