tangled
alpha
login
or
join now
stream.place
/
streamplace
Live video on the AT Protocol
74
fork
atom
overview
issues
1
pulls
pipelines
Compare changes
Choose any two refs to compare.
base:
v/moderation-actions-tests
v/fix-update-stream-title-location
v/delegated-moderation-frontend
v/delegated-moderation-actions
v/chat-mod-lexicon
revert-567-eli/localhost-dev-is-back
revert-374-eli/fix-type-export
revert-288-eli/expo-bump
restructure
no-await-in-handle
next
natb/workers-docs
natb/widgets-dashboard
natb/widget-dashboard
natb/wider-docs
natb/weird-chat-alignment
natb/web-hooks
natb/vol-tap-targets
natb/verify-sidebar-state
natb/ux-rtmp
natb/uuid-player-id
natb/use-runes
natb/use-navigate
natb/use-mise
natb/use-macos-15-intel
natb/urfave
natb/upload-thrice
natb/update-title
natb/update-ls
natb/update-liquid-glass
natb/update-docs-rtmp
natb/unscope-dropdown-passins
natb/typeahead-in-login
natb/tost
natb/text-content-type-none
natb/temp-error-reporting
natb/teleport-dialog
natb/teleport
natb/system-messages
natb/sync-client-time
natb/stretch-to-contain-image
natb/streamer-agreement-popup
natb/stereo-mobile
natb/stepper-reporter
natb/spinner-while-loading-chat
natb/size-in-seg
natb/signup-modal
natb/sidebar-doesnt-default-home
natb/show-dropdowns-fullscreen
natb/sharesheet
natb/settings-redesign
natb/set-explicit-bg-mobile
natb/sentry
natb/self-host
natb/scrollable-about
natb/scroll-down-kb-dismiss
natb/screen-sharing
natb/s3-ui
natb/rust-testing
natb/rtmp-preferred
natb/rotation
natb/rework-facets
natb/restore-last-ls-title
natb/responsive-player
natb/reporting-interface
natb/reorg-docs
natb/remove-tamagui-fixups-2
natb/remove-tamagui-fixups
natb/remove-stream-viewers
natb/remove-old-chat
natb/remove-lex-reference
natb/relogo-embed
natb/refocus-chat
natb/redirect-logins
natb/readd-bsky-and-follow
natb/proxy-comatprotorepo-correctly
natb/profile-bios
natb/player-respect-top-margin
natb/player-nits
natb/player-components-store
natb/pds-login
natb/patch-rn-webrtc-fork
natb/pass-object-fit
natb/ozone-alarm
natb/og-images
natb/offset-scrolltobottom
natb/offline
natb/no-tamagui
natb/no-redux
natb/no-react-navi
natb/new-popout-chat
natb/mute-words-discord
natb/mute-param
natb/multiple-line-livestream-title
natb/move-login-tr
natb/move-actions-outside-portal
natb/mod-actions
natb/mobile-player-0.7
natb/mobile-backgrounding
natb/misc-chat
natb/max-3-line-title
natb/manual-play-button
natb/make-nav-more-navigable
natb/make-dashboard-scrollable-native
natb/make-app-bsky-unauthed
natb/login-tweak
natb/login-redesign
natb/loading-overlay
natb/loader-under-ui
natb/live-stop
natb/link-to-right-bsky
natb/link-offset
natb/less-sensitive-slides
natb/less-annoying-replies
natb/key-mgr-attempt-2
natb/key-mgmt
natb/jpeg-thumbs
natb/invoke-pip-action
natb/instant-rotation
natb/increase-timeout
natb/increase-player-handle
natb/increase-jpeg-bounds
natb/import-i18n-properly
natb/i18next-cli
natb/i18n
natb/hovers-to-button
natb/hotfix-readd-chat-text
natb/hotfix-ios-cursor
natb/home-menu
natb/hide-sidebar-embeds
natb/hide-msg
natb/hide-login-if-logged-in
natb/hide-hidden-from-front-page
natb/hide-chat-on-new-ingest
natb/handle-redirect
natb/handle-autocomplete
natb/global-volume-store
natb/get-live-working
natb/fullscreen-fixes
natb/format-handle
natb/force-dark-theme
natb/force-dark-chat
natb/force-bar-style
natb/fix-webhook-urls
natb/fix-viewer-misalignment
natb/fix-untrusted-resolution
natb/fix-unmute-button
natb/fix-stream-key-buttons
natb/fix-popout-bg
natb/fix-ogimage-ratio
natb/fix-login-mobile
natb/fix-fullscreen
natb/fix-frame-capture
natb/fix-emoji
natb/fix-docs-get-started
natb/fix-dialogs-forever-questionmark
natb/fix-cyclic-sidebar
natb/fix-crash-when-loading-deletechatmessage
natb/fix-chat-alignment
natb/fix-c2pa-styles
natb/finally-fix-reloading
natb/filter-system-authors
natb/fallback-message-facets
natb/facet-livestream-post-titles
natb/embed-branding-web
natb/dropdown-stuff-2
natb/dropdown-stuff
natb/dont-restore-deleted-messages
natb/dont-replace-routes
natb/document-public-host
natb/docs-table-wrapping
natb/docs-separation
natb/docs-openapi
natb/do-not-login-redirect-mobile
natb/discord-no-lan-ips-with-smokescreen
natb/discord-no-lan-ips
natb/did-real
natb/detect-non-h264-webrtc
natb/danmu-back-in-router
natb/constrain-stream-title
natb/configurable-live-internal-api-url
natb/concerningly-close-chatbox
natb/command-errors
natb/clear-login-error-notif
natb/cleanup-mod-menu
natb/clean-mobile-player
natb/check-repo-discord
natb/check-platform-version
natb/check-perms
natb/check-before-golive
natb/chat-nits
natb/chat-full-height
natb/chat-fixes
natb/chat-bottom-offset
natb/changing-live
natb/changesets-2
natb/changesets
natb/certmagic
natb/censor-facet
natb/cant-log-in-native
natb/canonical-url
natb/buttons
natb/bullet-hell
natb/bug-no-default-fallback-for-bsky-appview
natb/blur-objectionable-content
natb/block-javascript-protocol
natb/backport-cards
natb/auto-resume-video
natb/at-handle
natb/astro-global-favicon
natb/analytics
natb/admonition-to-cws
natb/add-problems-back
natb/a-href-in-sidebar
issue-784
issue-705-2
iroh-streamplace-kv
iroh-stream
iroh-key-in-receive
iroh-c2pa-release
fix/aqtime-datetime-parsing
feature/ci-mise-check
feature/branding-system
feature-user-consent-c2pa
feature-c2pa-metadata-clean
feat/smokesignal-event-form
feat-iroh-replicator
eli/wrapped-peer-connection
eli/windows-selftest-github
eli/who-limits-the-limiter
eli/webrtc-with-pip
eli/webrtc-track-switching
eli/webrtc-ingest-fixes
eli/version-label
eli/upload-fixes
eli/too-many-keyframes
eli/sync-tangled
eli/sync-changes
eli/streamplace-the-labeler
eli/streamplace-package
eli/stream-from-phone
eli/stateful-repo
eli/standalone-oproxy
eli/skip-corepack-prompt
eli/simple-build
eli/server-restart-test
eli/segmentation-fixes
eli/segment-optimization
eli/rust-logging
eli/rust-experimentation
eli/rtmps
eli/rtmprec-2
eli/rtmprec
eli/rtmp-rec
eli/rtmp-push
eli/rtcrec-test-comment
eli/revert-thumbnail
eli/revert-dev-env
eli/reporting
eli/repo-magic-linking
eli/remove-auth-webhook-url
eli/relaxed-oauth-nonces
eli/registry-on-in-dev
eli/red-circles-for-the-people
eli/problem-detection
eli/prettier-curlies
eli/potentially-working-webrtc-patch-2
eli/potentially-working-webrtc-patch
eli/postinstall-bad
eli/postgres
eli/popout-moderation
eli/podman-cache
eli/pnpm
eli/plane-branch
eli/pion-verbose-logging
eli/phone-streaming-spike
eli/pg-locking-fix
eli/packetize-tweak-failing
eli/packetize-tweak
eli/packaging
eli/other-leaky-error-cases
eli/ota-fixes
eli/osxcross-prebuild-clang
eli/osxcross-earlier-sdk
eli/osxcross-different-linker-twice
eli/osxcross-different-linker-pause
eli/osxcross-different-linker-many
eli/osxcross-different-linker
eli/osxcross-apple-clang
eli/osxcross
eli/organize-imports
eli/opusparse-ingest
eli/optional-convergence
eli/oproxy-fix
eli/oproxy
eli/oauth-scopes
eli/oauth-in-dev-stinks
eli/oauth-improvements
eli/oatproxy-panic
eli/oatproxy-http-client
eli/npmignore
eli/npm-publishing
eli/noop-ci
eli/node-22
eli/no-thumbnail-stall
eli/no-selftest-updates
eli/no-crash-on-reload
eli/new-webrtc-style
eli/new-webrtc-fixes-0.7
eli/new-webrtc-fixes
eli/multitesting-github
eli/multitesting-eh-prolly-not
eli/multitesting
eli/multistream-improvements
eli/multistream-fixes
eli/more-azure-archives
eli/mobile-performance
eli/macbuild-fix
eli/lower-case-login
eli/login-chars
eli/localhost-oauth-fixes
eli/localhost-dev-is-back
eli/localdb
eli/local-pds
eli/live-feed-fix
eli/linking-fixes
eli/lexicon-repo-fixes
eli/lexicon-garbage-collection
eli/lex-it-up
eli/less-sketchy-android-signing
eli/leaky-error-cases
eli/labellers
eli/labelers-merged
eli/labelers
eli/labeler-polish
eli/keep-awake-mobile
eli/iroh-streamplace-merged
eli/iroh-replicator-integration
eli/iroh-kv-integration
eli/integrated-iroh-streamplace
eli/infinite-loop-bad
eli/indigo-renames
eli/http-metrics
eli/handle-old-auth
eli/handle-oauth-rejections
eli/handle-changes
eli/gstreamer-leak-ci-dynamic
eli/gstreamer-leak-ci
eli/gstreamer-leak-0.7
eli/gstreamer-1.26.9-bump
eli/golive-improvements
eli/godeps
eli/gitlab-ci-improvements
eli/github-skip-darwin
eli/get-segments-rebased
eli/get-segments
eli/further-gitlab-ci
eli/fix-type-export
eli/fix-thumbnail-explosion
eli/fix-test-flake
eli/fix-stuck-playback-channel-2
eli/fix-stuck-playback-channel
eli/fix-stuck-peerconnections
eli/fix-stuck-packetize
eli/fix-stereo
eli/fix-postgres-locking
eli/fix-intl-ci
eli/fix-gitlab
eli/fix-context-recursion
eli/feed-workaround
eli/feed-error-handling
eli/faster-native-chat
eli/fast-home-page
eli/failing-bframe-test
eli/expo-rotation-dependency
eli/expo-bump
eli/embedded-rtmp-server
eli/embed-go-livepeer
eli/edge-to-edge-fixes
eli/edge-to-edge
eli/dont-tell-handle-lies
eli/dont-panic
eli/docs-url-fix
eli/docker-linting
eli/docker-deployment-fixes
eli/docker-deployment-docs
eli/discord-polish
eli/discord-hook-mvp
eli/director-panic
eli/direct-rtmp-ingest
eli/devenv-again
eli/dev-env
eli/detox-testing-github
eli/detox-testing
eli/deterministic-muxing
eli/determinism-rebooted
eli/determinism-isk
eli/determinism-idk
eli/deep-linking
eli/deb-no-autostart
eli/database-resync
eli/custom-sources
eli/concat-script
eli/components
eli/com-atproto-sync-getRepo
eli/ci-desktop-darwin
eli/chat-mod-fixes
eli/chat-fixes
eli/cbor-troublemakers
eli/cache-break-buidler
eli/bump-xcode
eli/bump-maker-appimage
eli/bump-c2pa-rs
eli/built-for-newer-macos-version
eli/build-ios-before-release
eli/buffer-thumbnails
eli/bring-back-segment-cleaner
eli/bring-back-mist-addon
eli/bit-more-metadata
eli/better-bframe-detection
eli/aws-docker-registry
eli/async-react-native-webrtc
eli/android-image-NONSENSE
eli/add-language-to-posts
eli/actor-status
eli/5-minute-status
c2pa-metadata
c2pa-docs
build-5
build-4
build-3
build-2
build-1
blog-link-in-docs
backport-0.6
b5/rust_add_logging
b5/feat-replicator-swarm
0.7-rc
v0.9.9
v0.9.8
v0.9.7
v0.9.6
v0.9.5
v0.9.4
v0.9.3
v0.9.2
v0.9.1
v0.9.0
v0.8.18
v0.8.17
v0.8.16
v0.8.15
v0.8.14
v0.8.13
v0.8.12
v0.8.11
v0.8.10
v0.8.9
v0.8.8
v0.8.7
v0.8.6
v0.8.5
v0.8.4
v0.8.3
v0.8.2
v0.8.1
v0.8.0
v0.7.35
v0.7.34
v0.7.33
v0.7.32
v0.7.31
v0.7.30
v0.7.29
v0.7.28
v0.7.27
v0.7.26
v0.7.25
v0.7.24
v0.7.23
v0.7.22
v0.7.21
v0.7.20
v0.7.19
v0.7.18
v0.7.17
v0.7.16
v0.7.15
compare:
v/moderation-actions-tests
v/fix-update-stream-title-location
v/delegated-moderation-frontend
v/delegated-moderation-actions
v/chat-mod-lexicon
revert-567-eli/localhost-dev-is-back
revert-374-eli/fix-type-export
revert-288-eli/expo-bump
restructure
no-await-in-handle
next
natb/workers-docs
natb/widgets-dashboard
natb/widget-dashboard
natb/wider-docs
natb/weird-chat-alignment
natb/web-hooks
natb/vol-tap-targets
natb/verify-sidebar-state
natb/ux-rtmp
natb/uuid-player-id
natb/use-runes
natb/use-navigate
natb/use-mise
natb/use-macos-15-intel
natb/urfave
natb/upload-thrice
natb/update-title
natb/update-ls
natb/update-liquid-glass
natb/update-docs-rtmp
natb/unscope-dropdown-passins
natb/typeahead-in-login
natb/tost
natb/text-content-type-none
natb/temp-error-reporting
natb/teleport-dialog
natb/teleport
natb/system-messages
natb/sync-client-time
natb/stretch-to-contain-image
natb/streamer-agreement-popup
natb/stereo-mobile
natb/stepper-reporter
natb/spinner-while-loading-chat
natb/size-in-seg
natb/signup-modal
natb/sidebar-doesnt-default-home
natb/show-dropdowns-fullscreen
natb/sharesheet
natb/settings-redesign
natb/set-explicit-bg-mobile
natb/sentry
natb/self-host
natb/scrollable-about
natb/scroll-down-kb-dismiss
natb/screen-sharing
natb/s3-ui
natb/rust-testing
natb/rtmp-preferred
natb/rotation
natb/rework-facets
natb/restore-last-ls-title
natb/responsive-player
natb/reporting-interface
natb/reorg-docs
natb/remove-tamagui-fixups-2
natb/remove-tamagui-fixups
natb/remove-stream-viewers
natb/remove-old-chat
natb/remove-lex-reference
natb/relogo-embed
natb/refocus-chat
natb/redirect-logins
natb/readd-bsky-and-follow
natb/proxy-comatprotorepo-correctly
natb/profile-bios
natb/player-respect-top-margin
natb/player-nits
natb/player-components-store
natb/pds-login
natb/patch-rn-webrtc-fork
natb/pass-object-fit
natb/ozone-alarm
natb/og-images
natb/offset-scrolltobottom
natb/offline
natb/no-tamagui
natb/no-redux
natb/no-react-navi
natb/new-popout-chat
natb/mute-words-discord
natb/mute-param
natb/multiple-line-livestream-title
natb/move-login-tr
natb/move-actions-outside-portal
natb/mod-actions
natb/mobile-player-0.7
natb/mobile-backgrounding
natb/misc-chat
natb/max-3-line-title
natb/manual-play-button
natb/make-nav-more-navigable
natb/make-dashboard-scrollable-native
natb/make-app-bsky-unauthed
natb/login-tweak
natb/login-redesign
natb/loading-overlay
natb/loader-under-ui
natb/live-stop
natb/link-to-right-bsky
natb/link-offset
natb/less-sensitive-slides
natb/less-annoying-replies
natb/key-mgr-attempt-2
natb/key-mgmt
natb/jpeg-thumbs
natb/invoke-pip-action
natb/instant-rotation
natb/increase-timeout
natb/increase-player-handle
natb/increase-jpeg-bounds
natb/import-i18n-properly
natb/i18next-cli
natb/i18n
natb/hovers-to-button
natb/hotfix-readd-chat-text
natb/hotfix-ios-cursor
natb/home-menu
natb/hide-sidebar-embeds
natb/hide-msg
natb/hide-login-if-logged-in
natb/hide-hidden-from-front-page
natb/hide-chat-on-new-ingest
natb/handle-redirect
natb/handle-autocomplete
natb/global-volume-store
natb/get-live-working
natb/fullscreen-fixes
natb/format-handle
natb/force-dark-theme
natb/force-dark-chat
natb/force-bar-style
natb/fix-webhook-urls
natb/fix-viewer-misalignment
natb/fix-untrusted-resolution
natb/fix-unmute-button
natb/fix-stream-key-buttons
natb/fix-popout-bg
natb/fix-ogimage-ratio
natb/fix-login-mobile
natb/fix-fullscreen
natb/fix-frame-capture
natb/fix-emoji
natb/fix-docs-get-started
natb/fix-dialogs-forever-questionmark
natb/fix-cyclic-sidebar
natb/fix-crash-when-loading-deletechatmessage
natb/fix-chat-alignment
natb/fix-c2pa-styles
natb/finally-fix-reloading
natb/filter-system-authors
natb/fallback-message-facets
natb/facet-livestream-post-titles
natb/embed-branding-web
natb/dropdown-stuff-2
natb/dropdown-stuff
natb/dont-restore-deleted-messages
natb/dont-replace-routes
natb/document-public-host
natb/docs-table-wrapping
natb/docs-separation
natb/docs-openapi
natb/do-not-login-redirect-mobile
natb/discord-no-lan-ips-with-smokescreen
natb/discord-no-lan-ips
natb/did-real
natb/detect-non-h264-webrtc
natb/danmu-back-in-router
natb/constrain-stream-title
natb/configurable-live-internal-api-url
natb/concerningly-close-chatbox
natb/command-errors
natb/clear-login-error-notif
natb/cleanup-mod-menu
natb/clean-mobile-player
natb/check-repo-discord
natb/check-platform-version
natb/check-perms
natb/check-before-golive
natb/chat-nits
natb/chat-full-height
natb/chat-fixes
natb/chat-bottom-offset
natb/changing-live
natb/changesets-2
natb/changesets
natb/certmagic
natb/censor-facet
natb/cant-log-in-native
natb/canonical-url
natb/buttons
natb/bullet-hell
natb/bug-no-default-fallback-for-bsky-appview
natb/blur-objectionable-content
natb/block-javascript-protocol
natb/backport-cards
natb/auto-resume-video
natb/at-handle
natb/astro-global-favicon
natb/analytics
natb/admonition-to-cws
natb/add-problems-back
natb/a-href-in-sidebar
issue-784
issue-705-2
iroh-streamplace-kv
iroh-stream
iroh-key-in-receive
iroh-c2pa-release
fix/aqtime-datetime-parsing
feature/ci-mise-check
feature/branding-system
feature-user-consent-c2pa
feature-c2pa-metadata-clean
feat/smokesignal-event-form
feat-iroh-replicator
eli/wrapped-peer-connection
eli/windows-selftest-github
eli/who-limits-the-limiter
eli/webrtc-with-pip
eli/webrtc-track-switching
eli/webrtc-ingest-fixes
eli/version-label
eli/upload-fixes
eli/too-many-keyframes
eli/sync-tangled
eli/sync-changes
eli/streamplace-the-labeler
eli/streamplace-package
eli/stream-from-phone
eli/stateful-repo
eli/standalone-oproxy
eli/skip-corepack-prompt
eli/simple-build
eli/server-restart-test
eli/segmentation-fixes
eli/segment-optimization
eli/rust-logging
eli/rust-experimentation
eli/rtmps
eli/rtmprec-2
eli/rtmprec
eli/rtmp-rec
eli/rtmp-push
eli/rtcrec-test-comment
eli/revert-thumbnail
eli/revert-dev-env
eli/reporting
eli/repo-magic-linking
eli/remove-auth-webhook-url
eli/relaxed-oauth-nonces
eli/registry-on-in-dev
eli/red-circles-for-the-people
eli/problem-detection
eli/prettier-curlies
eli/potentially-working-webrtc-patch-2
eli/potentially-working-webrtc-patch
eli/postinstall-bad
eli/postgres
eli/popout-moderation
eli/podman-cache
eli/pnpm
eli/plane-branch
eli/pion-verbose-logging
eli/phone-streaming-spike
eli/pg-locking-fix
eli/packetize-tweak-failing
eli/packetize-tweak
eli/packaging
eli/other-leaky-error-cases
eli/ota-fixes
eli/osxcross-prebuild-clang
eli/osxcross-earlier-sdk
eli/osxcross-different-linker-twice
eli/osxcross-different-linker-pause
eli/osxcross-different-linker-many
eli/osxcross-different-linker
eli/osxcross-apple-clang
eli/osxcross
eli/organize-imports
eli/opusparse-ingest
eli/optional-convergence
eli/oproxy-fix
eli/oproxy
eli/oauth-scopes
eli/oauth-in-dev-stinks
eli/oauth-improvements
eli/oatproxy-panic
eli/oatproxy-http-client
eli/npmignore
eli/npm-publishing
eli/noop-ci
eli/node-22
eli/no-thumbnail-stall
eli/no-selftest-updates
eli/no-crash-on-reload
eli/new-webrtc-style
eli/new-webrtc-fixes-0.7
eli/new-webrtc-fixes
eli/multitesting-github
eli/multitesting-eh-prolly-not
eli/multitesting
eli/multistream-improvements
eli/multistream-fixes
eli/more-azure-archives
eli/mobile-performance
eli/macbuild-fix
eli/lower-case-login
eli/login-chars
eli/localhost-oauth-fixes
eli/localhost-dev-is-back
eli/localdb
eli/local-pds
eli/live-feed-fix
eli/linking-fixes
eli/lexicon-repo-fixes
eli/lexicon-garbage-collection
eli/lex-it-up
eli/less-sketchy-android-signing
eli/leaky-error-cases
eli/labellers
eli/labelers-merged
eli/labelers
eli/labeler-polish
eli/keep-awake-mobile
eli/iroh-streamplace-merged
eli/iroh-replicator-integration
eli/iroh-kv-integration
eli/integrated-iroh-streamplace
eli/infinite-loop-bad
eli/indigo-renames
eli/http-metrics
eli/handle-old-auth
eli/handle-oauth-rejections
eli/handle-changes
eli/gstreamer-leak-ci-dynamic
eli/gstreamer-leak-ci
eli/gstreamer-leak-0.7
eli/gstreamer-1.26.9-bump
eli/golive-improvements
eli/godeps
eli/gitlab-ci-improvements
eli/github-skip-darwin
eli/get-segments-rebased
eli/get-segments
eli/further-gitlab-ci
eli/fix-type-export
eli/fix-thumbnail-explosion
eli/fix-test-flake
eli/fix-stuck-playback-channel-2
eli/fix-stuck-playback-channel
eli/fix-stuck-peerconnections
eli/fix-stuck-packetize
eli/fix-stereo
eli/fix-postgres-locking
eli/fix-intl-ci
eli/fix-gitlab
eli/fix-context-recursion
eli/feed-workaround
eli/feed-error-handling
eli/faster-native-chat
eli/fast-home-page
eli/failing-bframe-test
eli/expo-rotation-dependency
eli/expo-bump
eli/embedded-rtmp-server
eli/embed-go-livepeer
eli/edge-to-edge-fixes
eli/edge-to-edge
eli/dont-tell-handle-lies
eli/dont-panic
eli/docs-url-fix
eli/docker-linting
eli/docker-deployment-fixes
eli/docker-deployment-docs
eli/discord-polish
eli/discord-hook-mvp
eli/director-panic
eli/direct-rtmp-ingest
eli/devenv-again
eli/dev-env
eli/detox-testing-github
eli/detox-testing
eli/deterministic-muxing
eli/determinism-rebooted
eli/determinism-isk
eli/determinism-idk
eli/deep-linking
eli/deb-no-autostart
eli/database-resync
eli/custom-sources
eli/concat-script
eli/components
eli/com-atproto-sync-getRepo
eli/ci-desktop-darwin
eli/chat-mod-fixes
eli/chat-fixes
eli/cbor-troublemakers
eli/cache-break-buidler
eli/bump-xcode
eli/bump-maker-appimage
eli/bump-c2pa-rs
eli/built-for-newer-macos-version
eli/build-ios-before-release
eli/buffer-thumbnails
eli/bring-back-segment-cleaner
eli/bring-back-mist-addon
eli/bit-more-metadata
eli/better-bframe-detection
eli/aws-docker-registry
eli/async-react-native-webrtc
eli/android-image-NONSENSE
eli/add-language-to-posts
eli/actor-status
eli/5-minute-status
c2pa-metadata
c2pa-docs
build-5
build-4
build-3
build-2
build-1
blog-link-in-docs
backport-0.6
b5/rust_add_logging
b5/feat-replicator-swarm
0.7-rc
v0.9.9
v0.9.8
v0.9.7
v0.9.6
v0.9.5
v0.9.4
v0.9.3
v0.9.2
v0.9.1
v0.9.0
v0.8.18
v0.8.17
v0.8.16
v0.8.15
v0.8.14
v0.8.13
v0.8.12
v0.8.11
v0.8.10
v0.8.9
v0.8.8
v0.8.7
v0.8.6
v0.8.5
v0.8.4
v0.8.3
v0.8.2
v0.8.1
v0.8.0
v0.7.35
v0.7.34
v0.7.33
v0.7.32
v0.7.31
v0.7.30
v0.7.29
v0.7.28
v0.7.27
v0.7.26
v0.7.25
v0.7.24
v0.7.23
v0.7.22
v0.7.21
v0.7.20
v0.7.19
v0.7.18
v0.7.17
v0.7.16
v0.7.15
go
+34
-21
6 changed files
expand all
collapse all
unified
split
js
app
components
login
login.tsx
features
bluesky
blueskyProvider.tsx
hooks
useBlueskyNotifications.tsx
store
slices
blueskySlice.ts
utils
clear-query-params.ts
docs
package.json
+1
js/app/components/login/login.tsx
···
27
27
28
28
// check for stored return route on mount
29
29
useEffect(() => {
30
30
+
if (Platform.OS !== "web") return;
30
31
storage.getItem("returnRoute").then((stored) => {
31
32
if (stored) {
32
33
try {
+6
-1
js/app/features/bluesky/blueskyProvider.tsx
···
2
2
import { storage } from "@streamplace/components";
3
3
import { useURL } from "expo-linking";
4
4
import { useEffect, useState } from "react";
5
5
+
import { Platform } from "react-native";
5
6
import { useStore } from "store";
6
7
import { useIsReady, useOAuthSession, useUserProfile } from "store/hooks";
7
8
import { navigateToRoute } from "utils/navigation";
···
23
24
loadOAuthClient();
24
25
25
26
// load return route from storage on mount
27
27
+
if (Platform.OS !== "web") {
28
28
+
return;
29
29
+
}
26
30
storage.getItem("returnRoute").then((stored) => {
27
31
if (stored) {
28
32
try {
···
82
86
if (
83
87
lastAuthStatus !== "loggedIn" &&
84
88
authStatus === "loggedIn" &&
85
85
-
returnRoute
89
89
+
returnRoute &&
90
90
+
Platform.OS === "web"
86
91
) {
87
92
console.log(
88
93
"Login successful, navigating back to returnRoute:",
+8
-3
js/app/hooks/useBlueskyNotifications.tsx
···
1
1
import { useToast } from "@streamplace/components";
2
2
import { CircleX } from "lucide-react-native";
3
3
import { useEffect } from "react";
4
4
+
import { Platform } from "react-native";
5
5
+
import clearQueryParams from "utils/clear-query-params";
4
6
import { useStore } from "../store";
5
7
6
8
function titleCase(str: string) {
···
18
20
let toast = useToast();
19
21
const notification = useStore((state) => state.notification);
20
22
const clearNotification = useStore((state) => state.clearNotification);
23
23
+
24
24
+
// we've already saved the notif to the store
25
25
+
clearQueryParams(["error", "error_description"]);
21
26
22
27
useEffect(() => {
23
28
if (notification) {
···
41
46
{
42
47
duration: 100,
43
48
variant: notification.type,
44
44
-
actionLabel: "Copy message",
49
49
+
actionLabel: Platform.OS === "web" ? "Copy message" : undefined,
45
50
iconLeft: CircleX,
46
51
onAction: () => {
47
52
navigator.clipboard.writeText(
···
59
64
notification.message,
60
65
{
61
66
variant: notification.type,
62
62
-
actionLabel: "Copy message",
67
67
+
actionLabel: Platform.OS === "web" ? "Copy message" : undefined,
63
68
onAction: () => {
64
69
navigator.clipboard.writeText(notification.message);
65
70
},
···
74
79
notification.message,
75
80
{
76
81
variant: notification.type,
77
77
-
actionLabel: "Copy message",
82
82
+
actionLabel: Platform.OS === "web" ? "Copy message" : undefined,
78
83
onAction: () => {
79
84
navigator.clipboard.writeText(notification.message);
80
85
},
+2
-16
js/app/store/slices/blueskySlice.ts
···
19
19
PlaceStreamServerSettings,
20
20
StreamplaceAgent,
21
21
} from "streamplace";
22
22
+
import clearQueryParams from "utils/clear-query-params";
22
23
import { privateKeyToAccount } from "viem/accounts";
23
24
import { StateCreator } from "zustand";
24
25
import createOAuthClient, {
···
117
118
createServerSettingsRecord: (debugRecording: boolean) => Promise<void>;
118
119
}
119
120
120
120
-
const clearQueryParams = () => {
121
121
-
if (Platform.OS !== "web") {
122
122
-
return;
123
123
-
}
124
124
-
const u = new URL(document.location.href);
125
125
-
const params = new URLSearchParams(u.search);
126
126
-
if (u.search === "") {
127
127
-
return;
128
128
-
}
129
129
-
params.delete("iss");
130
130
-
params.delete("state");
131
131
-
params.delete("code");
132
132
-
u.search = params.toString();
133
133
-
window.history.replaceState(null, "", u.toString());
134
134
-
};
135
135
-
136
121
const uploadThumbnail = async (
137
122
handle: string,
138
123
u: URL,
···
217
202
notification: null,
218
203
219
204
clearNotification: () => {
205
205
+
clearQueryParams();
220
206
set({ notification: null });
221
207
},
222
208
+15
js/app/utils/clear-query-params.ts
···
1
1
+
import { Platform } from "react-native";
2
2
+
3
3
+
export default function clearQueryParams(par = ["iss", "state", "code"]) {
4
4
+
if (Platform.OS !== "web") {
5
5
+
return;
6
6
+
}
7
7
+
const u = new URL(document.location.href);
8
8
+
const params = new URLSearchParams(u.search);
9
9
+
if (u.search === "") {
10
10
+
return;
11
11
+
}
12
12
+
par.forEach((p) => params.delete(p));
13
13
+
u.search = params.toString();
14
14
+
window.history.replaceState(null, "", u.toString());
15
15
+
}
+2
-1
js/docs/package.json
···
23
23
},
24
24
"devDependencies": {
25
25
"starlight-sidebar-topics": "^0.6.2"
26
26
-
}
26
26
+
},
27
27
+
"private": true
27
28
}