Skip to content

UI Components

Directory: ui/src/components/

26 React components for the group UI overlay.

Core Shell

ComponentFileDescription
GroupShellGroupShell.jsxLegacy group UI shell (sidebar + content)
TabNavTabNav.jsxNavigation tabs for group shell
NoGroupNoGroup.jsxCreate/Join group form (shown when not in group)

Dashboard

ComponentFileDescription
DashboardDashboard.jsxGroup overview stats
ReputationBarReputationBar.jsxXP bar with level display
CooldownPanelCooldownPanel.jsxActive cooldown timers

Members

ComponentFileDescription
MemberListMemberList.jsxMember list with roles and status
RoleManagerRoleManager.jsxRole assignment interface
InvitePanelInvitePanel.jsxGroup invite popup
JoinRequestPanelJoinRequestPanel.jsxJoin request popup

Tasks

ComponentFileDescription
TaskBoardTaskBoard.jsxTask list and management
InstructionPanelInstructionPanel.jsxMulti-task floating instruction panel

Features

ComponentFileDescription
AlliancePanelAlliancePanel.jsxAlliance/war management
TurfManagerTurfManager.jsxTerritory management
BountyBoardBountyBoard.jsxBounty board UI
GroupMailboxGroupMailbox.jsxInternal mail UI
GroupGarageGroupGarage.jsxVehicle storage UI
GroupChatGroupChat.jsxGroup chat interface
ActivityHistoryActivityHistory.jsxTask completion history
SpawnManagerSpawnManager.jsxSpawn point management

Shared

ComponentFileDescription
SettingsSettings.jsxSettings panel (stub, re-exports from lib)
ColorPickerColorPicker.jsxCustom color picker (saturation + hue)
CircularProgressCircularProgress.jsxSVG circular progress (3 styles)
NotificationToastNotificationToast.jsxIn-UI toast notification
ConfirmDialogConfirmDialog.jsxConfirmation dialog
GroupPanelGroupPanel.jsxGroup info panel

Component Pattern

jsx
import { useGroup } from '../context/GroupContext';
import { useTablet } from '../context/TabletContext';

export default function MyComponent() {
    const { groupData, members, dispatch } = useGroup();
    const { themeColors } = useTablet();

    return (
        <div style={{
            background: themeColors.windowBg,
            color: themeColors.text,
            borderRadius: themeColors.border,
        }}>
            {/* Component content */}
        </div>
    );
}

AIFAZI — FiveM Resources