Add topics list with pagination and update to api.ronde.vu

Features:
- Added TopicsList component with pagination support
- Shows active topics with peer counts
- Pagination controls (Previous/Next)
- Refresh button to reload topics
- Modal UI with proper styling
- Floating "View Topics" button on main screens

Changes:
- Updated API URL from rondevu.xtrdev.workers.dev to api.ronde.vu
- Added TopicsList component with pagination UI
- Added modal overlay and styles
- Integrated topics modal into main App

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-11-12 22:20:37 +01:00
parent 6538b5a18f
commit 1bbce9295d
4 changed files with 345 additions and 2 deletions

View File

@@ -6,9 +6,10 @@ import ActionSelector from './components/ActionSelector';
import MethodSelector from './components/MethodSelector';
import ConnectionForm from './components/ConnectionForm';
import ChatView from './components/ChatView';
import TopicsList from './components/TopicsList';
const rdv = new Rondevu({
baseUrl: 'https://rondevu.xtrdev.workers.dev',
baseUrl: 'https://api.ronde.vu',
rtcConfig: {
iceServers: [
{ urls: 'stun:stun.l.google.com:19302' },
@@ -60,6 +61,9 @@ function App() {
const [demoVersion, setDemoVersion] = useState('unknown');
const [serverVersion, setServerVersion] = useState('unknown');
// Topics modal state
const [showTopicsList, setShowTopicsList] = useState(false);
const connectionRef = useRef(null);
const dataChannelRef = useRef(null);
const fileTransfersRef = useRef(new Map()); // Track ongoing file transfers
@@ -529,6 +533,24 @@ function App() {
)}
<div className="peer-id-badge">Your Peer ID: {rdv.peerId}</div>
{/* Floating button to view topics */}
{step !== 4 && (
<button
className="view-topics-button"
onClick={() => setShowTopicsList(true)}
>
📊 View Topics
</button>
)}
{/* Topics modal */}
{showTopicsList && (
<TopicsList
rdv={rdv}
onClose={() => setShowTopicsList(false)}
/>
)}
</main>
<footer className="footer">