73cbb27713
- Add 8-position widget system around mobile FAB button (N, NE, E, SE, S, SW, W, NW) - Display weather icon, weather description, time, date, location around FAB - Show stats and RPG attributes in larger West/Northwest positions - Add animated clock face matching main panel design - Implement expandable text on hover/tap for truncated content - Add FAB spinner animation during API requests - Respect tracker preset settings for filtering displayed stats/attributes - Sync FAB data with lastGeneratedData for real-time updates - Hide FAB widgets on desktop viewport (>1000px) and when panel is open - Add settings UI for enabling/disabling individual widget types - Update FAB widgets on manual edits in tracker editor and stats panels
46 lines
1.7 KiB
JavaScript
46 lines
1.7 KiB
JavaScript
/**
|
|
* Classic Stats Module
|
|
* Handles classic RPG stat buttons (STR, DEX, CON, INT, WIS, CHA) +/- controls
|
|
*/
|
|
|
|
import {
|
|
extensionSettings,
|
|
$userStatsContainer
|
|
} from '../../core/state.js';
|
|
import { saveSettings, saveChatData } from '../../core/persistence.js';
|
|
import { updateFabWidgets } from '../ui/mobile.js';
|
|
|
|
/**
|
|
* Sets up event listeners for classic stat +/- buttons using delegation.
|
|
* Uses delegated events to persist across re-renders of the stats section.
|
|
*/
|
|
export function setupClassicStatsButtons() {
|
|
if (!$userStatsContainer) return;
|
|
|
|
// Delegated event listener for increase buttons
|
|
$userStatsContainer.on('click', '.rpg-stat-increase', function() {
|
|
const stat = $(this).data('stat');
|
|
if (extensionSettings.classicStats[stat] < 999) {
|
|
extensionSettings.classicStats[stat]++;
|
|
saveSettings();
|
|
saveChatData();
|
|
// Update only the specific stat value, not the entire stats panel
|
|
$(this).closest('.rpg-classic-stat').find('.rpg-classic-stat-value').text(extensionSettings.classicStats[stat]);
|
|
updateFabWidgets();
|
|
}
|
|
});
|
|
|
|
// Delegated event listener for decrease buttons
|
|
$userStatsContainer.on('click', '.rpg-stat-decrease', function() {
|
|
const stat = $(this).data('stat');
|
|
if (extensionSettings.classicStats[stat] > 1) {
|
|
extensionSettings.classicStats[stat]--;
|
|
saveSettings();
|
|
saveChatData();
|
|
// Update only the specific stat value, not the entire stats panel
|
|
$(this).closest('.rpg-classic-stat').find('.rpg-classic-stat-value').text(extensionSettings.classicStats[stat]);
|
|
updateFabWidgets();
|
|
}
|
|
});
|
|
}
|