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
All checks were successful
Build and Release / build-and-release (push) Successful in 12m41s
This commit is contained in:
@@ -16,24 +16,27 @@ jobs:
|
|||||||
|
|
||||||
- name: Setup Flatpak wrappers for Docker
|
- name: Setup Flatpak wrappers for Docker
|
||||||
run: |
|
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
|
mv /usr/bin/flatpak /usr/bin/flatpak.real
|
||||||
cat > /usr/bin/flatpak << 'WRAPPER'
|
cat > /usr/bin/flatpak << 'WRAPPER'
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
echo "[flatpak-wrapper] flatpak $*" >&2
|
|
||||||
if [ "$1" = "update" ]; then
|
if [ "$1" = "update" ]; then
|
||||||
echo "[flatpak-wrapper] Skipping update (pre-installed)" >&2
|
echo "[flatpak-wrapper] Skipping update (pre-installed)" >&2
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
if [ "$1" = "build-export" ]; then
|
||||||
|
shift
|
||||||
|
exec /usr/bin/flatpak.real build-export --disable-sandbox "$@"
|
||||||
|
fi
|
||||||
exec /usr/bin/flatpak.real "$@"
|
exec /usr/bin/flatpak.real "$@"
|
||||||
WRAPPER
|
WRAPPER
|
||||||
chmod +x /usr/bin/flatpak
|
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
|
mv /usr/bin/flatpak-builder /usr/bin/flatpak-builder.real
|
||||||
cat > /usr/bin/flatpak-builder << 'FBWRAPPER'
|
cat > /usr/bin/flatpak-builder << 'FBWRAPPER'
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
echo "[fb-wrapper] flatpak-builder --disable-rofiles-fuse $*" >&2
|
|
||||||
exec /usr/bin/flatpak-builder.real --disable-rofiles-fuse "$@"
|
exec /usr/bin/flatpak-builder.real --disable-rofiles-fuse "$@"
|
||||||
FBWRAPPER
|
FBWRAPPER
|
||||||
chmod +x /usr/bin/flatpak-builder
|
chmod +x /usr/bin/flatpak-builder
|
||||||
@@ -41,12 +44,6 @@ jobs:
|
|||||||
# Add user remote as fallback
|
# Add user remote as fallback
|
||||||
flatpak.real --user remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
|
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
|
- name: Cache npm and Electron
|
||||||
uses: actions/cache@v4
|
uses: actions/cache@v4
|
||||||
with:
|
with:
|
||||||
@@ -75,8 +72,7 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
cd Frontend/Electron
|
cd Frontend/Electron
|
||||||
npm run build
|
npm run build
|
||||||
npx electron-builder --linux AppImage
|
npx electron-builder --linux
|
||||||
npx electron-builder --linux flatpak || echo "::warning::Flatpak build failed (see logs above)"
|
|
||||||
xvfb-run npx electron-builder --win || echo "electron-builder exited with non-zero code, checking artifacts..."
|
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
|
test -f "dist/Discord Clone Setup"*.exe && echo "Windows build artifact verified" || exit 1
|
||||||
env:
|
env:
|
||||||
@@ -84,7 +80,6 @@ jobs:
|
|||||||
WINEDEBUG: "-all"
|
WINEDEBUG: "-all"
|
||||||
VITE_CONVEX_URL: ${{ secrets.VITE_CONVEX_URL }}
|
VITE_CONVEX_URL: ${{ secrets.VITE_CONVEX_URL }}
|
||||||
VITE_LIVEKIT_URL: ${{ secrets.VITE_LIVEKIT_URL }}
|
VITE_LIVEKIT_URL: ${{ secrets.VITE_LIVEKIT_URL }}
|
||||||
DEBUG: "@malept/flatpak-bundler*"
|
|
||||||
|
|
||||||
- name: List build artifacts
|
- name: List build artifacts
|
||||||
run: ls -la Frontend/Electron/dist/
|
run: ls -la Frontend/Electron/dist/
|
||||||
|
|||||||
1
Frontend/Electron/src/assets/icons/message.svg
Normal file
1
Frontend/Electron/src/assets/icons/message.svg
Normal 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 |
@@ -3,6 +3,7 @@ import { useQuery } from 'convex/react';
|
|||||||
import { api } from '../../../../convex/_generated/api';
|
import { api } from '../../../../convex/_generated/api';
|
||||||
import Avatar from './Avatar';
|
import Avatar from './Avatar';
|
||||||
import { useOnlineUsers } from '../contexts/PresenceContext';
|
import { useOnlineUsers } from '../contexts/PresenceContext';
|
||||||
|
import friendsIcon from '../assets/icons/friends.svg';
|
||||||
|
|
||||||
const FriendsView = ({ onOpenDM }) => {
|
const FriendsView = ({ onOpenDM }) => {
|
||||||
const [activeTab, setActiveTab] = useState('Online');
|
const [activeTab, setActiveTab] = useState('Online');
|
||||||
@@ -52,10 +53,28 @@ const FriendsView = ({ onOpenDM }) => {
|
|||||||
flexShrink: 0
|
flexShrink: 0
|
||||||
}}>
|
}}>
|
||||||
<div style={{ display: 'flex', alignItems: 'center', marginRight: '16px', paddingRight: '16px', borderRight: '1px solid var(--border-subtle)' }}>
|
<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)' }}>
|
<div style={{ marginRight: '12px' }}>
|
||||||
<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"/>
|
<div style={{
|
||||||
<path d="M7 13C7 11.8954 7.89543 11 9 11H15C16.1046 11 17 11.8954 17 13V15H7V13Z" fill="currentColor"/>
|
width: 24,
|
||||||
</svg>
|
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
|
Friends
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
1183
build logs/log2.txt
Normal file
1183
build logs/log2.txt
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user