A native item pane, with the show notes still rendered as HTML #4
Notifications
Due Date
No due date set.
Depends on
#3 A native feed list and item list
rays/ipodderx-app
Reference: rays/ipodderx-app#4
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The reading pane: title, feed, date, duration, the read and pin controls, the files with their play, save and delete buttons, and the show notes.
Blocked by #3 -- it needs a list to select from.
The show notes are the awkward part and the reason this is its own ticket. They are feed-supplied HTML, sanitized server-side with ammonia before they are sent, and there is no good native renderer for them:
NSAttributedString(html:)is slow, ugly and single-threaded, and writing a real one is a project in itself. A smallWKWebViewcarrying only the notes, styled to match the Glass palette, is the honest answer, and it is what native podcast clients generally do.So this is not a step towards removing the web view. It keeps one, deliberately, in the place where it earns its keep.
Done in
2929415.The pane carries the item, its files with play, download and delete, read and pin in the toolbar, a link to the original, and the notes.
The notes are a
WKWebViewcarrying only the notes, with just enough stylesheet to belong to the app — system font at body size, label colours, links in the accent. Nothing else is imposed; the markup is the publisher's. A link opens in Safari rather than inside the view, where it would replace the notes and leave no way back.Deleting asks first and says when the file is shared, since one file serves every subscriber.
Navigation took two goes, both worth recording: a row with a selection binding on the
Listhighlights and goes nowhere, because the binding takes the tap before the link sees it; and with the binding gone,NavigationLink(value:)with a matchingnavigationDestinationstill pushed nothing and gave no reason. The link carries its own destination now.Fourteen tests pass. The new one opens an item and looks for its notes, its delete button and its read control, so a pane that renders empty fails rather than passing quietly.