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