Commit Graph

1783 Commits

Author SHA1 Message Date
Pecacheu edcf17d939 fix: Lingui string variable issue
Signed-off-by: Pecacheu <3608878+Pecacheu@users.noreply.github.com>
2026-07-15 21:05:49 -04:00
Pecacheu 37c1c7fb83 fix: Default to non-reactive location in relPath to avoid error due to usage outside of Router
Signed-off-by: Pecacheu <3608878+Pecacheu@users.noreply.github.com>
2026-07-15 13:55:39 -04:00
Pecacheu ea6a2845b9 fix: Revert StateContext route change
Signed-off-by: Pecacheu <3608878+Pecacheu@users.noreply.github.com>
2026-07-15 13:37:35 -04:00
Pecacheu 739c4e2835 fix: Use new loading screen
Signed-off-by: Pecacheu <3608878+Pecacheu@users.noreply.github.com>
2026-07-15 10:23:23 -04:00
Pecacheu d4b899b202 refactor: Move loading screen so export can be used in other files
Signed-off-by: Pecacheu <3608878+Pecacheu@users.noreply.github.com>
2026-07-15 10:10:25 -04:00
Pecacheu 30b90649d9 fix: Pull captcha key from backend
Signed-off-by: Pecacheu <3608878+Pecacheu@users.noreply.github.com>
2026-07-14 23:30:13 -04:00
Pecacheu 1677d10f90 fix: Use relPath for path in HomeSidebar
Signed-off-by: Pecacheu <3608878+Pecacheu@users.noreply.github.com>
2026-07-14 23:15:06 -04:00
Pecacheu a27d3c32ed feat: Instance context & ClientController.limits
fix: Use instance global limits in Draft.ts because it is outside of the ClientController context
refactor: Move client init from Lifecycle into Instance so that the configuration is only pulled once
fix: Use instance prop for server emoji limit

Signed-off-by: Pecacheu <3608878+Pecacheu@users.noreply.github.com>
2026-07-14 23:13:14 -04:00
Gtoasted 1266781268 feat: add InstanceContext
refactor: use Instance.apiUrl instead of CONFIGURATION.DEFAULT_API_URL
refactor: use Instance.wsUrl instead of CONFIGURATION.DEFAULT_WS_URL
refactor: use Instance.mediaUrl instead of CONFIGURATION.DEFAULT_MEDIA_URL
refactor: use Instance.proxyUrl instead of CONFIGURATION.DEFAULT_PROXY_URL
refactor: use Instance.gifboxUrl instead of CONFIGURATION.DEFAULT_GIFBOX_URL
refactor: use Instance.isStoat instead of CONFIGURATION.IS_STOAT
refactor: use Instance.hcaptcha_sitekey instead of CONFIGURATION.HCAPTCHA_SITEKEY
refactor: use Instance.maxEmoji instead of CONFIGURATION.MAX_EMOJI
refactor: use Instance.enableVideo instead of CONFIGURATION.ENABLE_VIDEO
chore: take note of remaining variables to be implemented in instance.ts
chore: fix formatting
feat: add hostname to Instance.ts
feat: modify routes to allow access to other instances

Signed-off-by: Gtoasted <git@gtoasted.de>
2026-07-14 23:08:58 -04:00
Jacob Schlecht 45134ba647 fix: clicking message on profiles and context menu should work now (#1334)
Signed-off-by: Jacob Schlecht <dadadah@echoha.us>
2026-07-11 11:47:07 -06:00
Jacob Schlecht 035a38563c fix: Make gifbox videos embed correctly (#1329)
Signed-off-by: Jacob Schlecht <dadadah@echoha.us>
2026-07-08 09:19:48 -06:00
infi a9dde041d6 feat: helpful loading screen (#1327)
* feat: loading screen with status querying

Signed-off-by: infi <infi@infi.sh>

* feat: also show troubleshooting advice after 10s

Signed-off-by: infi <infi@infi.sh>

---------

Signed-off-by: infi <infi@infi.sh>
2026-07-05 18:35:36 -06:00
Amelia 94052551cc fix: user could report priviledged accounts (#1319)
Signed-off-by: Amelia <amy+git@amogus.cloud>
2026-07-01 10:53:49 -06:00
stoat-release[bot] 746bee5821 chore(main): release stoat-for-web 0.10.0 (#1283)
* chore(main): release stoat-for-web 0.10.0

* chore: generate i18n catalog

Signed-off-by: Stoat CI <stoat-ci@users.noreply.github.com>

---------

Signed-off-by: Stoat CI <stoat-ci@users.noreply.github.com>
Co-authored-by: stoat-release[bot] <245062572+stoat-release[bot]@users.noreply.github.com>
Co-authored-by: Stoat CI <stoat-ci@users.noreply.github.com>
stoat-for-web-v0.10.0
2026-06-30 16:00:17 -06:00
Asraye c51bbc331b feat: implement server sidebar in EmojiPicker (#1250)
* feat: implement server sidebar in EmojiPicker

Uses the non-functional server sidebar, and makes it functional.

Signed-off-by: AsrayeDev <asrayeofficial@gmail.com>

* fix: centre server rail and adjust spacings

Signed-off-by: AsrayeDev <asrayeofficial@gmail.com>

* chore: resolve requested changes

Signed-off-by: AsrayeDev <asrayeofficial@gmail.com>

* fix: Make the gif picker max the emojis at 32px

Signed-off-by: Jacob Schlecht <dadadah@echoha.us>

* feat: Update searchbar, localize server picking event interrupt

Signed-off-by: Jacob Schlecht <dadadah@echoha.us>

* fix: Tighten up the margins on the gif picker to make it hold more

This will get changed when we grow the picker soon

Signed-off-by: Jacob Schlecht <dadadah@echoha.us>

---------

Signed-off-by: AsrayeDev <asrayeofficial@gmail.com>
Signed-off-by: Jacob Schlecht <dadadah@echoha.us>
Co-authored-by: Jacob Schlecht <dadadah@echoha.us>
2026-06-30 15:40:20 -06:00
infi fb7fe040c3 feat: make gif picker ready for the box (#1295)
Signed-off-by: infi <infi@infi.sh>
Signed-off-by: Jacob Schlecht <Dadadah@users.noreply.github.com>
Co-authored-by: Jacob Schlecht <Dadadah@users.noreply.github.com>
2026-06-30 15:39:53 -06:00
Jacob Schlecht dc17de083b feat: Add TranslatedError and use it in register error (#1317)
* feat: Add TranslatedError and use it in register error

Signed-off-by: Jacob Schlecht <dadadah@echoha.us>

* refactor: Make the error modal use the TranslatedError component

Signed-off-by: Jacob Schlecht <dadadah@echoha.us>

---------

Signed-off-by: Jacob Schlecht <dadadah@echoha.us>
2026-06-30 15:39:38 -06:00
Jacob Schlecht d767421178 docs: Add docs for state (#1296)
* docs: Add docs for state

Signed-off-by: Jacob Schlecht <dadadah@echoha.us>

* fix: solidjs typo

Signed-off-by: Jacob Schlecht <dadadah@echoha.us>

---------

Signed-off-by: Jacob Schlecht <dadadah@echoha.us>
2026-06-30 11:49:37 -06:00
Jacob Schlecht dce89411f9 fix: make feedback links and language contribute links work (#1304)
Signed-off-by: Jacob Schlecht <dadadah@echoha.us>
2026-06-30 11:49:11 -06:00
Jacob Schlecht df89f319f8 fix: Add a confirmation snackbar for when changing your password (#1306)
Signed-off-by: Jacob Schlecht <dadadah@echoha.us>
2026-06-30 11:48:46 -06:00
Zomatree 8432dca1de fix: use override switch for server wide role permissions (#1313)
Signed-off-by: Zomatree <me@zomatree.live>
2026-06-28 22:18:48 -06:00
Ray fbe11c96d8 fix: Profile modal not opening on mobile & not always closing (#1311)
fix: Profile modal not opening on mobile w/ touch & not closing when pressing Message or Edit Profile

Signed-off-by: Pecacheu <3608878+Pecacheu@users.noreply.github.com>
2026-06-28 19:54:08 -06:00
Jacob Schlecht 6c24e46d0d fix: collected messages array staying on preemt breaking chat (#1310) 2026-06-26 12:37:43 -04:00
Jacob Schlecht 558ebd14bd fix: Make the message box fetch messages on reconnect (#1305)
Signed-off-by: Jacob Schlecht <dadadah@echoha.us>
2026-06-24 23:09:32 -06:00
Ray 5765187417 feat: Mobile UI for web (#835)
* fix: Shrink home-screen flex layout to single-column for mobile

Signed-off-by: Pecacheu <3608878+Pecacheu@users.noreply.github.com>

* fix: More mobile UI fixes
- Settings menu margin shrink and use "Back" button in sidebar instead of "Esc" button on right when screen width < 800px
- Message box doesn't grow from placeholder,  overflow with ... instead
- Hide GIF button when typing

Signed-off-by: Pecacheu <3608878+Pecacheu@users.noreply.github.com>

* fix: Mobile UI marches onwards
- Disable hover action buttons for DMs, server list, and messages on mobile because these are too easy to accidentially tap
- Move the text editor fixes from MessageBox.tsx to codeMirrorLineWrap.ts to make it act as a CodeMirror extension
- Allow newlines with enter key on mobile instead of sending (Attempted send with Ctrl + Enter on mobile, but this doesn't work for some reason. Eg. this would matter for mobile external keyboard or Android Desktop mode.)

Signed-off-by: Pecacheu <3608878+Pecacheu@users.noreply.github.com>

* fix: Add back button to Channel & Server settings

Signed-off-by: Pecacheu <3608878+Pecacheu@users.noreply.github.com>

* fix: Simplified CSS
- Found a better spot to put the media query so that it's all in one place for easier maintence
- Hide breadcrums at top in "My Account" panel to fix visual bug where there's still a gap there despite no title
- Center ESC button text properly

Signed-off-by: Pecacheu <3608878+Pecacheu@users.noreply.github.com>

* fix: Move the CSS again & misc
- I swear this is the last time lol. Now using classes for everything instead of just some of it, will also help with changes for phone view
- Change threshold for tablet view to 900px

Signed-off-by: Pecacheu <3608878+Pecacheu@users.noreply.github.com>

* feat: Mobile UI
- Phone UI triggers at < 600px width
- Animated, swipable drawer slider, inspired by Discord app

Signed-off-by: Pecacheu <3608878+Pecacheu@users.noreply.github.com>

* feat: Slide that SlideDrawer real smooth-like
- Inertia-based snapping for SlideDrawer! We mustelids are experts in speed so this was inevitable
- Fix bug that could cause a SlideDrawer race condition if openning and closing settings menu super fast
- Add appDrawer to app state to update things when the state of the UI changes between mobile/non-mobile
- Don't trigger floating tooltops when input is touched, otherwise they get stuck in a showing state on touchscreens
- Reset layout to member sidebar being hidden when mobile view is shown (otherwise how to close it seems to cause some confusion among those who helped test so far)
- Replace primary sidebar collapse button with a "back" button for mobie view

Signed-off-by: Pecacheu <3608878+Pecacheu@users.noreply.github.com>

* fix: Enable mobile autocorrect and autocapitalize on text input

Signed-off-by: Pecacheu <3608878+Pecacheu@users.noreply.github.com>

* fix: Un-round them corners for portrait phone view

Signed-off-by: Pecacheu <3608878+Pecacheu@users.noreply.github.com>

* fix: Refine SlideDrawer inertia detection by always recalculating final velocity at end
- Fix message context menu appearing in editor

Signed-off-by: Pecacheu <3608878+Pecacheu@users.noreply.github.com>

* fix: Sensible margains for modals on mobile to prevent weird scroll behavior
- On mobile, skip UserCard preview (which doesn't look right on small displays) when tapping user icon and go straight to full UserProfile modal

Signed-off-by: Pecacheu <3608878+Pecacheu@users.noreply.github.com>

* fix: Small chance that two modals have the same ID using Math.random for ID

Signed-off-by: Pecacheu <3608878+Pecacheu@users.noreply.github.com>

* fix: Clicking channels/DMs/settings buttons opens slide drawer on mobile

Signed-off-by: Pecacheu <3608878+Pecacheu@users.noreply.github.com>

* fix: Cease this madness
- Fix #883 text overflow out of dialog modals
- Remove old "error" type modal
- Fix invite embed going past edge of screen on mobile

Signed-off-by: Pecacheu <3608878+Pecacheu@users.noreply.github.com>

* fix: Disable context menu when editing message, so you can accept OS spellcheck suggestions
- Remove debug print from SlideDrawer

Signed-off-by: Pecacheu <3608878+Pecacheu@users.noreply.github.com>

* feat: Adding a react button to the context menu was harder than anticipated
- Also streamlined the Media Picker menu in the process, should now be much more efficent by generating a lot less stray DOM elements, and using only one Media Picker instance per message
- Only show member sidebar when in server or group DM, because it's blank in normal DMs which causes confusion

Signed-off-by: Pecacheu <3608878+Pecacheu@users.noreply.github.com>

* fix: Prettier format

Signed-off-by: Pecacheu <3608878+Pecacheu@users.noreply.github.com>

* fix: Reset floating touch timer to prevent overlapping timer bug

Signed-off-by: Pecacheu <3608878+Pecacheu@users.noreply.github.com>

* fix: Misc message box fixes
- Fix different sized margin on left vs right side of message box (if you had OCD you'd understand)
- Fix overflow hidden clipping emoji autocorrect dropdown when editing a message
- Fix message box buttons/send button not firing when touch keyboard is open on Chrome (testing needed on Firefox/Safari mobile)
- Fix vite config not allowing rotate to landscape

Signed-off-by: Pecacheu <3608878+Pecacheu@users.noreply.github.com>

* fix: Misc console warnings
- Fix 'scrollTo undefined' error in Message
- Fix 'computations will never be disposed' warning in Container
- Add excluded generated dirs from eslint config to vscode config

Signed-off-by: Pecacheu <3608878+Pecacheu@users.noreply.github.com>

* fix: Use text cursor on mdui-text-field
Addresses #1005

Signed-off-by: Pecacheu <3608878+Pecacheu@users.noreply.github.com>

* fix: Make class naming scheme compatible with #791

Signed-off-by: Pecacheu <3608878+Pecacheu@users.noreply.github.com>

* fix: Appearance menu and role editor color pane clipping past edge on mobile

Signed-off-by: Pecacheu <3608878+Pecacheu@users.noreply.github.com>

* fix: Adjust channel bar bottom margin to match top margin

Signed-off-by: Pecacheu <3608878+Pecacheu@users.noreply.github.com>

* feat: Add reactive signals to SlideDrawer, will come in handy in other PRs

Signed-off-by: Pecacheu <3608878+Pecacheu@users.noreply.github.com>

* fix: Use undefined rather than null for consistency
- Start SlideState enum at 1 so that ! can be used to check for undefined

Signed-off-by: Pecacheu <3608878+Pecacheu@users.noreply.github.com>

* fix: Fixes for VoiceCallCardPiP

Signed-off-by: Pecacheu <3608878+Pecacheu@users.noreply.github.com>

* refactor: Use new resize & layout hooks

Signed-off-by: Pecacheu <3608878+Pecacheu@users.noreply.github.com>

* fix: Apply mobile login layout using hook

Signed-off-by: Pecacheu <3608878+Pecacheu@users.noreply.github.com>

* fix: Remember SlideDrawer state when rotating to landscape then portrait
- Auto-hide touch keyboard when swiping from messages view to channels view
- Search icon instead of input box in header on mobile

Signed-off-by: Pecacheu <3608878+Pecacheu@users.noreply.github.com>

* fix: Truncate channel name to ensure header buttons don't overflow screen edge

Signed-off-by: Pecacheu <3608878+Pecacheu@users.noreply.github.com>

* fix: Ripple on sidebar buttons getting stuck in pressed state on mobile
- Fix reactivity in Sidebar.tsx
- Add ease-out to SlideDrawer transition
- Reformat CSS

Signed-off-by: Pecacheu <3608878+Pecacheu@users.noreply.github.com>

* refactor: Replace reactive vars with CSS conditions

Signed-off-by: Pecacheu <3608878+Pecacheu@users.noreply.github.com>

* refactor: Move reactive styles out of style.css and into PandaCSS conditions

Signed-off-by: Pecacheu <3608878+Pecacheu@users.noreply.github.com>

* fix: [TEMP] Disable channel reordering on mobile for usability

Signed-off-by: Pecacheu <3608878+Pecacheu@users.noreply.github.com>

* fix: React not showing in context menu after refactor

Signed-off-by: Pecacheu <3608878+Pecacheu@users.noreply.github.com>

* chore: Fix merge conflict with embed-the-embeds

Signed-off-by: Pecacheu <3608878+Pecacheu@users.noreply.github.com>

* fix: ChannelHeader inline CSS

Signed-off-by: Pecacheu <3608878+Pecacheu@users.noreply.github.com>

* fix: SettingsContent reactivity, margins on login page layout for VERY small screens

Signed-off-by: Pecacheu <3608878+Pecacheu@users.noreply.github.com>

* chore: Add TODO to AppearanceMenu

Signed-off-by: Pecacheu <3608878+Pecacheu@users.noreply.github.com>

* fix: Default slide state to show messages view by default like Discord

Signed-off-by: Pecacheu <3608878+Pecacheu@users.noreply.github.com>

---------

Signed-off-by: Pecacheu <3608878+Pecacheu@users.noreply.github.com>
2026-06-24 20:39:31 -06:00
Ray 2b50b0d58c chore: Enable PWA in dev mode for testing (#1300)
fix: Enable PWA for dev build for testing

Signed-off-by: Pecacheu <3608878+Pecacheu@users.noreply.github.com>
2026-06-24 18:26:11 -06:00
Jacob Schlecht cef4c0fe33 fix: Make collected messages only collect if channel matches (#1294)
Signed-off-by: Jacob Schlecht <dadadah@echoha.us>
2026-06-21 20:08:20 -06:00
Jacob Schlecht 54ac572278 fix: Add lingui extract to dockerfile (#1291)
Signed-off-by: Jacob Schlecht <dadadah@echoha.us>
2026-06-21 15:13:11 -06:00
Mero ac87ebb2ea fix: play GIFs inline on iOS instead of forcing fullscreen (#1290)
Signed-off-by: Mero <me@mero.zip>
2026-06-21 21:08:41 +00:00
Jacob Schlecht 30e03068f4 fix: Messages should now show up if you send a message viewing history (#1286)
Signed-off-by: Jacob Schlecht <dadadah@echoha.us>
2026-06-21 20:41:28 +02:00
infi 96f48f68f5 feat: android nag screen (#1276)
* feat: android nag screen

Signed-off-by: infi <infi@infi.sh>

* chore: eligible origin check

* feat: add whitelabel asset

Signed-off-by: infi <infi@infi.sh>

---------

Signed-off-by: infi <infi@infi.sh>
Co-authored-by: Jacob Schlecht <Dadadah@users.noreply.github.com>
2026-06-21 17:16:12 +00:00
Jacob Schlecht 312d6e6ebe fix: slowmode timer goes to 0 now, and shows up above replies (#1282)
* fix: slowmode timer goes to 0 now, and shows up above replies

Signed-off-by: Jacob Schlecht <dadadah@echoha.us>

* refactor: make the countodnw not show 0 but instead have a small delay

Signed-off-by: Jacob Schlecht <dadadah@echoha.us>

---------

Signed-off-by: Jacob Schlecht <dadadah@echoha.us>
2026-06-20 11:25:43 -06:00
Jacob Schlecht a52c2a94a2 fix: defean typo (#1285)
Signed-off-by: Jacob Schlecht <dadadah@echoha.us>
2026-06-20 11:25:02 -06:00
Jacob Schlecht ff8f37d735 feat: add ability to copy links from messages (#1161)
* feat: add message context, add ability to copy links from messages
* fix: don't show context menu unless there's a message
* refactor: make message context an object containing message

Signed-off-by: Jacob Schlecht <dadadah@echoha.us>
2026-06-20 13:15:21 -04:00
Ray 9e737009d5 fix: More efficient CSS breakpoints & adjusted breakpoints to match Material specs (#1273)
* fix: Adjust breakpoints
* chore: Update documentation

Signed-off-by: Pecacheu <3608878+Pecacheu@users.noreply.github.com>
2026-06-20 13:14:31 -04:00
Jacob Schlecht 7f9d285fed fix: Make dockerfile copy packages before installing (#1284)
Also make the dockerfile do lingui compilation

Signed-off-by: Jacob Schlecht <dadadah@echoha.us>
2026-06-20 11:52:20 -04:00
Asraye 5c3da83d46 fix: stop system messages from being reportable (#1262)
Signed-off-by: AsrayeDev <asrayeofficial@gmail.com>
2026-06-19 23:07:25 -06:00
Asraye e7df4777cd fix: double divider in user context menu for bots (#1260)
* fix: double divider in user context menu for bots

Signed-off-by: AsrayeDev <asrayeofficial@gmail.com>

* chore: clean up pr

Whoopsie.

Signed-off-by: Asraye <asrayeofficial@gmail.com>

---------

Signed-off-by: AsrayeDev <asrayeofficial@gmail.com>
Signed-off-by: Asraye <asrayeofficial@gmail.com>
2026-06-19 23:07:13 -06:00
Asraye 684a46c9ec fix: use u200B instead of uF800 (#1268)
Signed-off-by: AsrayeDev <asrayeofficial@gmail.com>
2026-06-19 23:00:47 -06:00
Asraye d42da62ff9 fix: use correct length check for mutual groups (#1254)
fix: use correct query in groups length

Signed-off-by: AsrayeDev <asrayeofficial@gmail.com>
2026-06-19 22:39:07 -06:00
stoat-release[bot] 55ce54ef72 chore(main): release stoat-for-web 0.9.1 (#1280)
Co-authored-by: stoat-release[bot] <245062572+stoat-release[bot]@users.noreply.github.com>
stoat-for-web-v0.9.1
2026-06-19 20:36:36 -06:00
Jacob Schlecht 0f3d024e49 fix: Pass atEnd as a signal to fix acks when clicking on a channel (#1281)
Signed-off-by: Jacob Schlecht <dadadah@echoha.us>
2026-06-19 22:30:34 -04:00
Jacob Schlecht c3f91f9779 fix: Add base path to service worker registration check (#1279)
Signed-off-by: Jacob Schlecht <dadadah@echoha.us>
2026-06-20 01:03:07 +02:00
stoat-release[bot] 5235ea0cee chore(main): release stoat-for-web 0.9.0 (#1277)
Co-authored-by: stoat-release[bot] <245062572+stoat-release[bot]@users.noreply.github.com>
stoat-for-web-v0.9.0
2026-06-19 12:42:23 -06:00
İspik 26b248e0ea feat: add gif providers regex to detect gif providers (#1243)
Signed-off-by: İspik <ispik@ispik.dev>
2026-06-19 12:38:26 -06:00
Paul Makles 90f0fe8f73 fix: use mise assets for prod release (#1278)
Signed-off-by: Paul Makles <me@insrt.uk>
2026-06-19 18:24:57 +00:00
Asraye 79dc800e8c feat: add NFKC normalization to autocomplete (#1267)
Signed-off-by: AsrayeDev <asrayeofficial@gmail.com>
2026-06-19 11:57:00 -06:00
Asraye 9915ab0f5c fix: prevent all invites from disappearing on deletion (#1249)
Fixes an error in deleteInvite where entry.id was compared against itself, resulting in an empty array after deleting any invite.

Signed-off-by: Asraye <asrayeofficial@gmail.com>
2026-06-19 11:45:23 -06:00
Tylan Bainter 57dbb087eb feat: add toggle for password field visibility (#1252)
feat: add toggle for password visibility

Signed-off-by: bntrtm <git.bntrtm@tjbainter.com>
2026-06-19 11:44:57 -06:00
Asraye 89e87057f6 fix: add missing onSuccess to DeleteRole.tsx (#1248)
This PR adds the missing onSuccess to DeleteRole.tsx. Now successfully pushes the user back to the main roles window.

Signed-off-by: Asraye <asrayeofficial@gmail.com>
2026-06-19 11:44:01 -06:00