Improved the webui pages for phone - #121
Conversation
Added Board posts display Added for Network to list last Chats
Fixed css issues
|
@defnax I feel there are some other |
|
I hate this scss, i get very often destroyed corrupted this |
Sure take a look when you get chance. So, we need to be careful with the |
|
But i commited all changes what i see in my git app. |
* corrected some place holder text
Added Navbar for webui on phones for Boards and Channels: * Validate API responses before processing. * Keep rendering/navigation functional if a response is incomplete. * Log a clear warning instead of throwing an uncaught error. * Use independent sorted arrays, avoiding mutation of the master list.
Fixed channels thumbnail layout issue Added same comments design from boards to channels
Fixed layout issues for myfiles, friendfiles & search
|
@zelfroster new review? |
|
@defnax I was working on streamlining some things and adding instructions, so the styles don't get messed up each time. Let me push the changes in a bit, we can merge that, and then after you update this PR accordingly, will review it. |
|
yes this issue with styles i get headdache, then i lose motivation when its destroyed and losing time |
|
Defnax please rebase this pr/121 on master so that it gets a chance to be reviewed and merged, and I can work on it. |
@jolavillette @defnax What's the plan for webui rn btw? I mean broadly do we already have planned features to implement or things to improve? Since, we are going to use AI most probably to improve things here, it would be better to add an AGENTS.md with some specific instructions here too, else the webui product as a whole would have inconsistent looking UI/UX. |
|
As far as I am concerned:
May I respecfully suggest that you also use AI to make a first pass on PRs, so that you can focus on what is worth your human time? IMO that's the way everything should go now in the whole RetroShare project. |
Makes sense 👍🏼
Yeah, that's a great suggestion, I was thinking of doing that too. @csoler I was wondering if we can get an AI tool reviewer to automatically review PRs so the author's can fix the obvious issues etc, and then the actual reviewer can take a better look to save everyone's time and accelerate the work on webui maybe. |
|
This one is a good AI reviewer to use if we can get it for our project - https://www.greptile.com/open-source |
|
of course if that can be helpful. What we should avoid absolutely is the AI merging PRs by itself or even being able to modify the code in the repository. |
I had no time now my code broken i has some conflicts on my code with master |
|
I think after this merged i will make a break with webui |
OK I will rebase it on master |
New requests or leaving the graph cancel unfinished calculations.
…s can be retried while concurrent duplicates remain blocked.
…, bypassing the board cache. Any older board load finishes first so it can’t overwrite the new totals.
…hile open, allowing the existing tap-outside handler to close it.
Added standard component and view function support
- Unify Mail composer emoji picker with standard flat design - Remove duplicate SCSS blocks and prevent button shadow bleeding
|
but i found lots of but then i stopped then its gets never finished. i can show lots of more things/issues/ui stuff needs to be improved . |
|
-> 20e2180 |
- Prevent 3D inset box-shadow from bleeding into close and icon buttons - Fix missing glyph in Chat History Browser by switching far.fa-comments to fas - Add .far fallback mapping to Font Awesome Solid font family - Add hover styling for modal close controls
|
fixed -> 2bca038 |
…sages - Enable Ctrl+Enter (and Cmd+Enter) to insert a newline without sending - Prevent plain Enter send handler when modifier keys (Ctrl/Cmd) are pressed - Support dynamic multiline auto-resizing across Lobby, People, and Network chats - Preserve Shift+Enter standard newline behavior
|
|
- Show dedicated attachment preview card instead of raw image HTML code in textarea - Display larger image thumbnail with remove (×) button and file info - Click thumbnail to open full-screen image viewer with close button and Escape key support - Add dynamic "Add a caption... (optional)" placeholder when image is attached - Support sending image alone or with caption across Lobby, People, and Network chats
The shared comment component defined VOTE_UP = 1, VOTE_DOWN = 2; the core's contract is the opposite (rsgxscommon.h RsGxsVoteType: DOWN = 1, UP = 2 -- the same values boards_util and channels_util already use). Every thumbs-up on a board or channel comment was published as a downvote and vice versa, and a GXS vote is a message that cannot be retracted. Worth a release note to users of the affected build. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Removing freshVnode() without converting any of the 53 popupMessage call sites froze every dynamic modal at its first render: mithril skips a subtree whose children array is identical between redraws, so the Add Friend and Create Identity dialogs kept their submit buttons disabled forever and displayed none of what was typed. The recursive copy is back for vnode call sites -- component call sites keep the new direct m(component) path, which is the right long-term shape; converting the call sites one by one can then retire the copy for real. For a component vnode (m(SomeComponent) passed ready-made) the copy rebuilds via m(tag, attrs, children) without descending into children, which belong to the component's own view. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Three defects around one truth the endpoints impose. A post's count lives in mMeta.mServiceString, retallied by the core's background pass (~15 s, p3postbase): the immediate getBoardContent refetch after a vote read the OLD count -- and replaced the cached post object out from under the kanban's optimistic +1, so the click changed nothing anywhere. The refetch now happens once, 30 s later, on the core's own tally; the post view bumps the number it renders like the kanban does. And a comment's mUpVotes is never filled by any endpoint the JSON API exposes (only the unexposed getRelatedComments tallies), so board comment counts rendered 0 forever. getBoardAllContent does return the votes as their own array, one message per vote with mParentId naming its target: the board post view now counts them client-side, the way the channels page always has. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Releasing the in-flight key in a finally reintroduced the storm the key exists to stop: the view refires loadPostContent on every redraw while the body is null, and each completed request triggers a redraw -- an unfetchable post became a self-sustaining request loop at redraw rate, exactly what the deleted comment warned about. The key is now released immediately on success (the cached body stops the view), and after five minutes on failure -- storm-proof, and the post still gets retries. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The wave's capture fixes covered the network and distant send paths and the rooms' history -- three siblings kept reading the world at answer time. The room send echo read this.currentLobby and appended to the room on screen: after a room switch, the sent message landed in the wrong room, under the wrong identity, and scrolled it. The distant initiate's SUCCESS answer clobbered State.chatPid with no guard, defeating every downstream isCurrentChat check and merging the old contact's tunnel into the newly opened conversation (its refusal also answers a null pid, which the poll then chased into "conversation gone"). And loadChatMessages wrote its preview line -- or deleted one -- under whatever contact was selected when the answer landed, then scrolled it; loadOlderChatHistory fired its scroll-fixup done() into the new conversation. All four now capture and compare. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The unification flattened the picker rules to a bare class (0,1,0), which loses to base/_base.scss's input[type='text'] (0,1,1): border, radius, padding and size all reverted to the global look, and the global input:focus inset shadow bled through. The selector is now input.emoji-search-input -- same specificity, later in the cascade -- and focus flattens the shadow. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ws its login
Two residual gaps of the per-login friend cache. refreshGpgDetails
({force: true}) -- called right after adding or removing a friend --
joined a sweep already in flight, whose friend list predates the
change: the added friend stayed missing and a removed friend came back
under the "removed successfully" popup, until the TTL expired. A force
call now chains one fresh sweep behind the in-flight one (further
forces share it), owner- and slot-checked when its turn comes.
And the history preload was a single global in-flight slot with no
login attached: the next login's first call returned the previous
login's still-running run (loading nothing), whose answers kept
writing the old conversations' previews into the new session. The
preload now records the login generation it belongs to and its
answers check it. Label to v171.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
rerunQueued was new module state outside the per-login reset: queued under login A and left true, it swallowed login B's first force call -- the freshly added friend missing until the TTL lapsed. It resets with the rest of the cache state now. A refused initiate became a silent dead end once the zero pid was recognised: nothing polled, nothing errored, "Please wait for secure tunnel" forever. The refusal now ends the conversation visibly. And the fixed 30 s vote refetch could land BEFORE the core's retally (one board per ~15 s tick, asynchronous write), revert the optimistic +1 on screen and stick -- cached content is never refreshed again. The refetch now compares against the pre-vote counts and only replaces the cached post once the tally has actually moved, with bounded retries; on give-up the bump stays. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Review follow-ups: inverted comment votes, frozen modals, vote counts, and six more
…button states, and preserved mobile notes-button styling.
…ne list defining routes, icons, labels, and live unread counts.
…ble names, Escape dismissal, focus trapping, and focus return.
- Hidden Create Channel, Subscribed, and Posts heading. - Top-right ⋮ menu with Unsubscribe. - Compact Back/Search row and blue circular Back button. - Reduced spacing.
…rd theme button design




Changes implemented:
Mobile and responsive interface
Navigation and unread counters
Public chat rooms
Direct chats
Distant chats
Network page
Adding friends
rsInvite=URL support.People and identities
Mail
Boards
Channels
Forums
Files and ShareManager
0empty state with “No shared folders yet.”Statistics and diagnostics
Reliability, performance, and build improvements
styles.css.Important merged contributor fixes
These are present in your branch but were authored mainly by
jolavillette, Sumit Kumar Soni, or other contributors: