* Add bare minimum hashtags support (#2804)
* Add bare minimum hashtags support
As atproto/api already parses hashtags, this is as simple as hooking it
up like link segments.
This is "bare minimum" because:
- Opening hashtag "#foo" is actually just a search for "foo" right now
to work around #2491.
- There is no integration in the composer. This hasn't stopped people
from using hashtags already, and can be added later.
- This change itself only had to hook things up - thank you for having
already put the hashtag parsing in place.
* Remove workaround for hash search not working now that it's fixed
* Add RichTextTag and TagMenu
* Sketch
* Remove hackfix
* Some cleanup
* Sketch web
* Mobile design
* Mobile handling of tags search
* Web only
* Fix navigation woes
* Use new callback
* Hook it up
* Integrate muted tags
* Fix dropdown styles
* Type error
* Use close callback
* Fix styles
* Cleanup, install latest sdk
* Quick muted words screen
* Targets
* Dir structure
* Icons, list view
* Move to dialog
* Add removal confirmation
* Swap copy
* Improve checkboxees
* Update matching, add tests
* Moderate embeds
* Create global dialogs concept again to prevent flashing
* Add access from moderation screen
* Highlight tags on native
* Add web highlighting
* Add close to web modal
* Adjust close color
* Rename toggles and adjust logic
* Icon update
* Load states
* Improve regex
* Improve regex
* Improve regex
* Revert link test
* Hyphenated words
* Improve matching
* Enhance
* Some tweaks
* Muted words modal changes
* Handle invalid handles, handle long tags
* Remove main regex
* Better test
* Space/punct check drop to includes
* Lowercase post text before comparison
* Add better real world test case
---------
Co-authored-by: Kisaragi Hiu <mail@kisaragi-hiu.com>
* Add theme-color meta tag and apply selection of theme
* update logic for retrieving current theme color
* add ts-ignore
* fix ts error
---------
Co-authored-by: Hailey <me@haileyok.com>
* Update blogpost link to bsky.social and remove unnecessary localisation params at end of Play Store URL in README.md
* Update privacy policy link to bsky.social in PrivacyPolicy.tsx
* Update TOS link to bsky.social in TermsOfService.tsx
* Update links to bsky.social in Links.tsx
* Update links to bsky.social in SplashScreen.web.tsx
* Update link to bsky.social in base.html
* Update links to bsky.social in HomeLoggedOutCTA.tsx
* Update links to bsky.social in RightNav.tsx
* Update links to bsky.social in Drawer.tsx
* Update DMCA link to bsky.social in Modal.tsx
* Update link to copyright policy on bsky.social in CopyrightPolicy.tsx
* Update link to bsky.social in CommunityGuidelines.tsx
* Update links to bsky.social in Settings.tsx
* Update to bsky.social in Typography.tsx
* add dark theme selection to settings/schema
* use `useThemePrefs` where needed
* adjust theme providers to support various themes
* update storybook
* handle web themes
* better themeing for web
* dont show dark theme prefs when color mode is light
* drop the inverted text change on oled theme
* get the color mode inside of `useColorModeTheme`
* use `ThemeName` type everywhere
* typo
* use dim/dark instead of dark/oled
* prevent any fickers on web
* fix styles
* use `dim` for dark default
* more cleanup
* 🤔
* set system background color
* ts
* Rip out virtualization on the web
* Screw around with layout
* onEndReached
* scrollToOffset
* Fix background
* onScroll
* Shell bars
* More scroll
* Fixes
* position: sticky
* Clean up 1
* Clean up 2
* Undo PagerWithHeader changes and fork it
* Trim down both versions
* Cleanup 3
* Memoize, lint
* Don't scroll away modal or lightbox
* Add content-visibility for rows
* Fix composer
* Fix types
* Fix borked scroll animation
* Fixes to layout
* More FlatList parity
* Layout fixes
* Fix more layout
* More layout
* More layouts
* Fix profile layout
* Remove onScroll
* Display: none inactive pages
* Add an intermediate List component
* Fix type
* Add onScrolledDownChange
* Port pager to use onScrolledDownChange
* Fix on mobile
* Don't pass down onScroll (replacement TBD)
* Remove resetMainScroll
* Replace onMainScroll with MainScrollProvider
* Hook ScrollProvider to pager
* Fix the remaining special case
* Optimize a bit
* Enforce that onScroll cannot be passed
* Keep value updated even if no handler
* Also memo it
* Move the fork to List.web
* Add scroll handler
* Consolidate List props a bit
* More stuff
* Rm unused
* Simplify
* Make isScrolledDown work
* Oops
* Fixes
* Hook up context scroll handlers
* Scroll restore for tabs
* Route scroll restoration POC
* Fix some issues with restoration
* Remove bad idea
* Fix pager scroll restoration
* Undo accidental locale changes
* onContentSizeChange
* Scroll to post
* Better positioning
* Layout fixes
* Factor out navigation stuff
* Cleanup
* Oops
* Cleanup
* Fixes and types
* Naming etc
* Fix crash
* Match FL semantics
* Snap the header scroll on the web
* Add body scroll lock
* Scroll to top on search
* Fix types
* Typos
* Fix Safari overflow
* Fix search positioning
* Add border
* Patch react navigation
* Revert "Patch react navigation"
This reverts commit 62516ed9c20410d166e1582b43b656c819495ddc.
* fixes
* scroll
* scrollbar
* cleanup unrelated
* undo unrel
* flatter
* Fix css
* twk
* Install on native as well
* Add button and link components
* Comments
* Use new prop
* Add some form elements
* Add labels to input
* Fix line height, add suffix
* Date inputs
* Autofill styles
* Clean up InputDate types
* Improve types for InputText, value handling
* Enforce a11y props on buttons
* Add Dialog, Portal
* Dialog contents
* Native dialog
* Clean up
* Fix animations
* Improvements to web modal, exiting still broken
* Clean up dialog types
* Add Prompt, Dialog refinement, mobile refinement
* Integrate new design tokens, reorg storybook
* Button colors
* Dim mode
* Reorg
* Some styles
* Toggles
* Improve a11y
* Autosize dialog, handle max height, Dialog.ScrolLView not working
* Try to use BottomSheet's own APIs
* Scrollable dialogs
* Add web shadow
* Handle overscroll
* Styles
* Dialog text input
* Shadows
* Button focus states
* Button pressed states
* Gradient poc
* Gradient colors and hovers
* Add hrefAttrs to Link
* Some more a11y
* Toggle invalid states
* Update dialog descriptions for demo
* Icons
* WIP Toggle cleanup
* Refactor toggle to not rely on immediate children
* Make Toggle controlled
* Clean up Toggles storybook
* ToggleButton styles
* Improve a11y labels
* ToggleButton hover darkmode
* Some i18n
* Refactor input
* Allow extension of input
* Remove old input
* Improve icons, add CalendarDays
* Refactor DateField, web done
* Add label example
* Clean up old InputDate, DateField android, text area example
* Consistent imports
* Button context, icons
* Add todo
* Add closeAllDialogs control
* Alignment
* Expand color palette
* Hitslops, add shortcut to Storybook in dev
* Fix multiline on ios
* Mark dialog close button as unused
* add apple music embed
* add vimeo embed
* add logic for tenor and giphy embeds
* keep it simple, use playerUri for images too
* add gif embed player
* lint, fix tests
* remove links that can't produce a thumb
* Revert "remove links that can't produce a thumb"
This reverts commit 985b92b4e622db936bb0c79fdf324099b9c8fcd8.
* Revert "Revert "remove links that can't produce a thumb""
This reverts commit 4895ded8b5120c4fc52b43ae85c9a01ea0b1a733.
* Revert "Revert "Revert "remove links that can't produce a thumb"""
This reverts commit 36d04b517ba5139e1639f2eda28d7f9aaa2dbfb6.
* properly obtain giphy metadata regardless of used url
* test fixes
* adjust gif player
* add all twitch embed types
* support m.youtube links
* few logic adjustments
* adjust spotify player height
* prefetch gif before showing
* use memory-disk cache policy on gifs
* use `disk` cachePolicy on ios - can't start/stop animation
* support pause/play on web
* onLoad fix
* remove extra pressable, add accessibility, fix scale issues
* improve size of embed
* add settings
* fix(?) settings
* add source to embed player params
* update tests
* better naming and settings options
* consent modal
* fix test id
* why is webstorm adding .tsx
* web modal
* simplify types
* adjust snap points
* remove unnecessary yt embed library. just use the webview always
* remove now useless WebGifStill 😭
* more type cleanup
* more type cleanup
* combine parse and prefs check in one memo
* improve dimensions of youtube shorts
* oops didn't commit the test 🫥
* add shorts as separate embed type
* fix up schema
* shorts modal
* hide gif details
* support localized spotify embeds
* more cleanup
* improve look and accessibility of gif embeds
* Update routing for the external embeds settings page
* Update and simplify the external embed preferences screen
* Update copy in embedconsent modal and add 'allow all' button
---------
Co-authored-by: Hailey <me@haileyok.com>
* rss: full URL in RSS link; use request Host in URLs
Full URL syntax on request from third parties.
Using the actual request host should fix issues with non-bsky-production
deployments. It is HTTPS-only, so doesn't work perfectly for local dev.
* rss: make /profile/{handle}/rss an HTTP redirect
Motivation is easier discoverability of RSS feed.
* web: initial implementation of profile RSS feed
* re-work RSS feed to use DID in URL, not handle
Shouldn't have RSS feeds break when folks change handle.
* rss: tweak XML
- handle missing content (PWI opt-out) better
- use opengraph "article" and "profile" types, not just website for everything
- fix timestamps, and used indexed at not created at
* bskyweb: update deps to current indigo
* bskyweb: refactor handles to flatten control flow, and update to current indigo
* go Makefile: remove --debug (not working)
* bskyweb: default to public appview API instance
* make: do internationalization build as part of build-web
* Don't create embeds of profiles/posts from users who ask not to be shown in public views
* Formatting cleanup
* Bump workflow file to build an image for this branch
* Add lists screen
* Update Lists screen and List create/edit modal to support curate lists
* Rework the ProfileList screen and add curatelist support
* More ProfileList progress
* Update list modals
* Rename mutelists to modlists
* Layout updates/fixes
* More layout fixes
* Modal fixes
* List list screen updates
* Update feed page to give more info
* Layout fixes to ListAddUser modal
* Layout fixes to FlatList and Feed on desktop
* Layout fix to LoadLatestBtn on Web
* Handle did resolution before showing the ProfileList screen
* Rename the CustomFeed routes to ProfileFeed for consistency
* Fix layout issues with the pager and feeds
* Factor out some common code
* Fix UIs for mobile
* Fix user list rendering
* Fix: dont bubble custom feed errors in the merge feed
* Refactor feed models to reduce usage of the SavedFeeds model
* Replace CustomFeedModel with FeedSourceModel which abstracts feed-generators and lists
* Add the ability to pin lists
* Add pinned lists to mobile
* Remove dead code
* Rework the ProfileScreenHeader to create more real-estate for action buttons
* Improve layout behavior on web mobile breakpoints
* Refactor feed & list pages to use new Tabs layout component
* Refactor to ProfileSubpageHeader
* Implement modlist block and mute
* Switch to new api and just modify state on modlist actions
* Fix some UI overflows
* Fix: dont show edit buttons on lists you dont own
* Fix alignment issue on long titles
* Improve loading and error states for feeds & lists
* Update list dropdown icons for ios
* Fetch feed display names in the mergefeed
* Improve rendering off offline feeds in the feed-listing page
* Update Feeds listing UI to react to changes in saved/pinned state
* Refresh list and feed on posts tab press
* Fix pinned feed ordering UI
* Fixes to list pinning
* Remove view=simple qp
* Add list to feed tuners
* Render richtext
* Add list href
* Add 'view avatar'
* Remove unused import
* Fix missing import
* Correctly reflect block by list state
* Replace the <Tabs> component with the more effective <PagerWithHeader> component
* Improve the responsiveness of the PagerWithHeader
* Fix visual jank in the feed loading state
* Improve performance of the PagerWithHeader
* Fix a case that would cause the header to animate too aggressively
* Add the ability to scroll to top by tapping the selected tab
* Fix unit test runner
* Update modlists test
* Add curatelist tests
* Fix: remove link behavior in ListAddUser modal
* Fix some layout jank in the PagerWithHeader on iOS
* Simplify ListItems header rendering
* Wait for the appview to recognize the list before proceeding with list creation
* Fix glitch in the onPageSelecting index of the Pager
* Fix until()
* Copy fix
Co-authored-by: Eric Bailey <git@esb.lol>
---------
Co-authored-by: Eric Bailey <git@esb.lol>
* move `PreferencesHomeFeed` to a screen instead of a modal
* add web route for home feed preferences
* upgrade `@miblanchard/react-native-slider` to fix lint
* fix web route naming
* fix desktop web styling
* add `react-native-slider` mock
* add emoji-mart package for emoji dropdown picker
* remove emoji picker modal
* load emoji mart data not as part of the main bundle
* remove @emoji-mart/data
* setup emoji insertion with events
* get emoji data from local static assets
* close emoji picker after one emoji has been inserted
* Switch emoji picker trigger to an icon
* Update emoji-mart-data.js
* make grabbing emoji data work on more browsers
---------
Co-authored-by: Paul Frazee <pfrazee@gmail.com>
* add title attr to text text links
* Revert "add title attr to text text links"
This reverts commit c028cd184efd3b2788d8f46134eecf521e5d7b07.
* use css tooltips
* add to expanded post state
* handle theming
* add to bskyweb