feat: add Friends View component displaying online/all users with status and direct message functionality.
All checks were successful
Build and Release / build-and-release (push) Successful in 12m41s

This commit is contained in:
Bryan1029384756
2026-02-11 22:27:43 -06:00
parent da655604ed
commit 40ad86bbcb
4 changed files with 1215 additions and 17 deletions

View File

@@ -16,24 +16,27 @@ jobs:
- name: Setup Flatpak wrappers for Docker
run: |
# Wrap flatpak: log all calls, skip 'update' (runtimes pre-installed in image)
# Wrap flatpak: skip 'update' (runtimes pre-installed in image),
# inject --disable-sandbox for 'build-export' (bwrap can't create namespaces in Docker)
mv /usr/bin/flatpak /usr/bin/flatpak.real
cat > /usr/bin/flatpak << 'WRAPPER'
#!/bin/bash
echo "[flatpak-wrapper] flatpak $*" >&2
if [ "$1" = "update" ]; then
echo "[flatpak-wrapper] Skipping update (pre-installed)" >&2
exit 0
fi
if [ "$1" = "build-export" ]; then
shift
exec /usr/bin/flatpak.real build-export --disable-sandbox "$@"
fi
exec /usr/bin/flatpak.real "$@"
WRAPPER
chmod +x /usr/bin/flatpak
# Wrap flatpak-builder: log and inject --disable-rofiles-fuse for Docker
# Wrap flatpak-builder: inject --disable-rofiles-fuse for Docker
mv /usr/bin/flatpak-builder /usr/bin/flatpak-builder.real
cat > /usr/bin/flatpak-builder << 'FBWRAPPER'
#!/bin/bash
echo "[fb-wrapper] flatpak-builder --disable-rofiles-fuse $*" >&2
exec /usr/bin/flatpak-builder.real --disable-rofiles-fuse "$@"
FBWRAPPER
chmod +x /usr/bin/flatpak-builder
@@ -41,12 +44,6 @@ jobs:
# Add user remote as fallback
flatpak.real --user remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
# Show what's installed for debugging
echo "=== Installed flatpak runtimes (system) ==="
flatpak.real list --system 2>/dev/null || echo "(none or error listing)"
echo "=== Installed flatpak runtimes (user) ==="
flatpak.real list --user 2>/dev/null || echo "(none)"
- name: Cache npm and Electron
uses: actions/cache@v4
with:
@@ -75,8 +72,7 @@ jobs:
run: |
cd Frontend/Electron
npm run build
npx electron-builder --linux AppImage
npx electron-builder --linux flatpak || echo "::warning::Flatpak build failed (see logs above)"
npx electron-builder --linux
xvfb-run npx electron-builder --win || echo "electron-builder exited with non-zero code, checking artifacts..."
test -f "dist/Discord Clone Setup"*.exe && echo "Windows build artifact verified" || exit 1
env:
@@ -84,7 +80,6 @@ jobs:
WINEDEBUG: "-all"
VITE_CONVEX_URL: ${{ secrets.VITE_CONVEX_URL }}
VITE_LIVEKIT_URL: ${{ secrets.VITE_LIVEKIT_URL }}
DEBUG: "@malept/flatpak-bundler*"
- name: List build artifacts
run: ls -la Frontend/Electron/dist/

View File

@@ -0,0 +1 @@
<svg class="icon_f8fa06" aria-hidden="true" role="img" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path fill="currentColor" d="M12 22a10 10 0 1 0-8.45-4.64c.13.19.11.44-.04.61l-2.06 2.37A1 1 0 0 0 2.2 22H12Z" class=""></path></svg>

After

Width:  |  Height:  |  Size: 278 B

View File

@@ -3,6 +3,7 @@ import { useQuery } from 'convex/react';
import { api } from '../../../../convex/_generated/api';
import Avatar from './Avatar';
import { useOnlineUsers } from '../contexts/PresenceContext';
import friendsIcon from '../assets/icons/friends.svg';
const FriendsView = ({ onOpenDM }) => {
const [activeTab, setActiveTab] = useState('Online');
@@ -52,10 +53,28 @@ const FriendsView = ({ onOpenDM }) => {
flexShrink: 0
}}>
<div style={{ display: 'flex', alignItems: 'center', marginRight: '16px', paddingRight: '16px', borderRight: '1px solid var(--border-subtle)' }}>
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" style={{ marginRight: 8, color: 'var(--text-muted)' }}>
<path d="M13.5 2C13.5 2.82843 12.8284 3.5 12 3.5C11.1716 3.5 10.5 2.82843 10.5 2C10.5 1.17157 11.1716 0.5 12 0.5C12.8284 0.5 13.5 1.17157 13.5 2Z" fill="currentColor"/>
<path d="M7 13C7 11.8954 7.89543 11 9 11H15C16.1046 11 17 11.8954 17 13V15H7V13Z" fill="currentColor"/>
</svg>
<div style={{ marginRight: '12px' }}>
<div style={{
width: 24,
height: 24,
overflow: 'hidden',
display: 'flex',
alignItems: 'center',
justifyContent: 'center',
flexShrink: 0
}}>
<img
src={friendsIcon}
alt=""
style={{
width: 24,
height: 24,
transform: 'translateX(-1000px)',
filter: `drop-shadow(1000px 0 0 var(--interactive-normal))`
}}
/>
</div>
</div>
Friends
</div>

1183
build logs/log2.txt Normal file

File diff suppressed because it is too large Load Diff