@rakeyshgidwani/roger-ui-bank-theme-stan-design 0.2.8 → 0.2.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1 -1
- package/dist/components/ui/accessibility-demo.esm.js +30 -24
- package/dist/components/ui/accessibility-demo.js +30 -24
- package/dist/components/ui/advanced-component-architecture-demo.esm.js +235 -179
- package/dist/components/ui/advanced-component-architecture-demo.js +235 -179
- package/dist/components/ui/advanced-transition-system-demo.esm.js +110 -64
- package/dist/components/ui/advanced-transition-system-demo.js +110 -64
- package/dist/components/ui/advanced-transition-system.esm.js +166 -122
- package/dist/components/ui/advanced-transition-system.js +166 -122
- package/dist/components/ui/animation/animated-container.esm.js +52 -29
- package/dist/components/ui/animation/animated-container.js +52 -29
- package/dist/components/ui/animation/staggered-container.esm.js +18 -9
- package/dist/components/ui/animation/staggered-container.js +18 -9
- package/dist/components/ui/animation-demo.esm.js +67 -35
- package/dist/components/ui/animation-demo.js +67 -35
- package/dist/components/ui/badge.esm.js +9 -6
- package/dist/components/ui/badge.js +9 -6
- package/dist/components/ui/battery-conscious-animation-demo.esm.js +122 -87
- package/dist/components/ui/battery-conscious-animation-demo.js +122 -87
- package/dist/components/ui/border-radius-shadow-demo.esm.js +23 -12
- package/dist/components/ui/border-radius-shadow-demo.js +23 -12
- package/dist/components/ui/button.esm.js +8 -2
- package/dist/components/ui/button.js +8 -2
- package/dist/components/ui/card.esm.js +33 -8
- package/dist/components/ui/card.js +33 -8
- package/dist/components/ui/checkbox.esm.js +3 -3
- package/dist/components/ui/checkbox.js +3 -3
- package/dist/components/ui/color-preview.esm.js +68 -45
- package/dist/components/ui/color-preview.js +68 -45
- package/dist/components/ui/data-display/chart.esm.js +112 -84
- package/dist/components/ui/data-display/chart.js +112 -84
- package/dist/components/ui/data-display/data-grid-simple.esm.js +1 -1
- package/dist/components/ui/data-display/data-grid-simple.js +1 -1
- package/dist/components/ui/data-display/data-grid.esm.js +80 -67
- package/dist/components/ui/data-display/data-grid.js +80 -67
- package/dist/components/ui/data-display/list.esm.js +53 -45
- package/dist/components/ui/data-display/list.js +53 -45
- package/dist/components/ui/data-display/table.esm.js +62 -54
- package/dist/components/ui/data-display/table.js +62 -54
- package/dist/components/ui/data-display/timeline.esm.js +39 -34
- package/dist/components/ui/data-display/timeline.js +39 -34
- package/dist/components/ui/data-display/tree.esm.js +116 -84
- package/dist/components/ui/data-display/tree.js +116 -84
- package/dist/components/ui/data-display/types.esm.js +389 -364
- package/dist/components/ui/data-display/types.js +389 -364
- package/dist/components/ui/enterprise-mobile-experience-demo.esm.js +120 -70
- package/dist/components/ui/enterprise-mobile-experience-demo.js +120 -70
- package/dist/components/ui/enterprise-mobile-experience.esm.js +124 -73
- package/dist/components/ui/enterprise-mobile-experience.js +124 -73
- package/dist/components/ui/feedback/alert.esm.js +22 -15
- package/dist/components/ui/feedback/alert.js +22 -15
- package/dist/components/ui/feedback/progress.esm.js +47 -24
- package/dist/components/ui/feedback/progress.js +47 -24
- package/dist/components/ui/feedback/skeleton.esm.js +39 -29
- package/dist/components/ui/feedback/skeleton.js +39 -29
- package/dist/components/ui/feedback/toast.esm.js +62 -38
- package/dist/components/ui/feedback/toast.js +62 -38
- package/dist/components/ui/feedback/types.esm.js +83 -83
- package/dist/components/ui/feedback/types.js +83 -83
- package/dist/components/ui/font-preview.esm.js +41 -39
- package/dist/components/ui/font-preview.js +41 -39
- package/dist/components/ui/form-demo.esm.js +150 -113
- package/dist/components/ui/form-demo.js +150 -113
- package/dist/components/ui/hardware-acceleration-demo.esm.js +137 -87
- package/dist/components/ui/hardware-acceleration-demo.js +137 -87
- package/dist/components/ui/input.esm.js +4 -1
- package/dist/components/ui/input.js +4 -1
- package/dist/components/ui/layout-demo.esm.js +81 -56
- package/dist/components/ui/layout-demo.js +81 -56
- package/dist/components/ui/layouts/adaptive-layout.esm.js +27 -8
- package/dist/components/ui/layouts/adaptive-layout.js +27 -8
- package/dist/components/ui/layouts/desktop-layout.esm.js +39 -19
- package/dist/components/ui/layouts/desktop-layout.js +39 -19
- package/dist/components/ui/layouts/mobile-layout.esm.js +19 -9
- package/dist/components/ui/layouts/mobile-layout.js +19 -9
- package/dist/components/ui/layouts/tablet-layout.esm.js +28 -14
- package/dist/components/ui/layouts/tablet-layout.js +28 -14
- package/dist/components/ui/mobile-form-validation.esm.js +120 -87
- package/dist/components/ui/mobile-form-validation.js +120 -87
- package/dist/components/ui/mobile-input-demo.esm.js +19 -13
- package/dist/components/ui/mobile-input-demo.js +19 -13
- package/dist/components/ui/mobile-input.esm.js +185 -120
- package/dist/components/ui/mobile-input.js +185 -120
- package/dist/components/ui/mobile-skeleton-loading-demo.esm.js +128 -111
- package/dist/components/ui/mobile-skeleton-loading-demo.js +128 -111
- package/dist/components/ui/navigation/breadcrumb.esm.js +17 -14
- package/dist/components/ui/navigation/breadcrumb.js +17 -14
- package/dist/components/ui/navigation/index.esm.js +23 -1
- package/dist/components/ui/navigation/index.js +23 -1
- package/dist/components/ui/navigation/menu.esm.js +49 -35
- package/dist/components/ui/navigation/menu.js +49 -35
- package/dist/components/ui/navigation/navigation-demo.esm.js +81 -74
- package/dist/components/ui/navigation/navigation-demo.js +81 -74
- package/dist/components/ui/navigation/pagination.esm.js +62 -50
- package/dist/components/ui/navigation/pagination.js +62 -50
- package/dist/components/ui/navigation/sidebar.esm.js +56 -42
- package/dist/components/ui/navigation/sidebar.js +56 -42
- package/dist/components/ui/navigation/stepper.esm.js +34 -23
- package/dist/components/ui/navigation/stepper.js +34 -23
- package/dist/components/ui/navigation/tabs.esm.js +32 -21
- package/dist/components/ui/navigation/tabs.js +32 -21
- package/dist/components/ui/navigation/types.esm.js +196 -195
- package/dist/components/ui/navigation/types.js +196 -195
- package/dist/components/ui/overlay/backdrop.esm.js +17 -16
- package/dist/components/ui/overlay/backdrop.js +17 -16
- package/dist/components/ui/overlay/focus-manager.esm.js +21 -19
- package/dist/components/ui/overlay/focus-manager.js +21 -19
- package/dist/components/ui/overlay/index.esm.js +22 -2
- package/dist/components/ui/overlay/index.js +22 -2
- package/dist/components/ui/overlay/modal.esm.js +38 -34
- package/dist/components/ui/overlay/modal.js +38 -34
- package/dist/components/ui/overlay/overlay-manager.esm.js +25 -20
- package/dist/components/ui/overlay/overlay-manager.js +25 -20
- package/dist/components/ui/overlay/popover.esm.js +74 -58
- package/dist/components/ui/overlay/popover.js +74 -58
- package/dist/components/ui/overlay/portal.esm.js +7 -7
- package/dist/components/ui/overlay/portal.js +7 -7
- package/dist/components/ui/overlay/tooltip.esm.js +54 -39
- package/dist/components/ui/overlay/tooltip.js +54 -39
- package/dist/components/ui/overlay/types.esm.js +132 -131
- package/dist/components/ui/overlay/types.js +132 -131
- package/dist/components/ui/performance-demo.esm.js +135 -88
- package/dist/components/ui/performance-demo.js +135 -88
- package/dist/components/ui/semantic-input-system-demo.esm.js +117 -80
- package/dist/components/ui/semantic-input-system-demo.js +117 -80
- package/dist/components/ui/theme-customizer.esm.js +84 -52
- package/dist/components/ui/theme-customizer.js +84 -52
- package/dist/components/ui/theme-preview.esm.js +95 -43
- package/dist/components/ui/theme-preview.js +95 -43
- package/dist/components/ui/theme-switcher.esm.js +70 -44
- package/dist/components/ui/theme-switcher.js +70 -44
- package/dist/components/ui/theme-toggle.esm.js +3 -3
- package/dist/components/ui/theme-toggle.js +3 -3
- package/dist/components/ui/token-demo.esm.js +33 -21
- package/dist/components/ui/token-demo.js +33 -21
- package/dist/components/ui/touch-demo.esm.js +102 -73
- package/dist/components/ui/touch-demo.js +102 -73
- package/dist/components/ui/touch-friendly-interface-demo.esm.js +102 -64
- package/dist/components/ui/touch-friendly-interface-demo.js +102 -64
- package/dist/components/ui/touch-friendly-interface.esm.js +85 -61
- package/dist/components/ui/touch-friendly-interface.js +85 -61
- package/dist/hooks/use-accessibility-support.esm.js +115 -85
- package/dist/hooks/use-accessibility-support.js +115 -85
- package/dist/hooks/use-adaptive-layout.esm.js +56 -33
- package/dist/hooks/use-adaptive-layout.js +56 -33
- package/dist/hooks/use-advanced-patterns.esm.js +57 -42
- package/dist/hooks/use-advanced-patterns.js +57 -42
- package/dist/hooks/use-advanced-transition-system.esm.js +112 -71
- package/dist/hooks/use-advanced-transition-system.js +112 -71
- package/dist/hooks/use-animation-profile.esm.js +63 -34
- package/dist/hooks/use-animation-profile.js +63 -34
- package/dist/hooks/use-battery-animations.esm.js +80 -55
- package/dist/hooks/use-battery-animations.js +80 -55
- package/dist/hooks/use-battery-conscious-loading.esm.js +166 -123
- package/dist/hooks/use-battery-conscious-loading.js +166 -123
- package/dist/hooks/use-battery-optimization.esm.js +78 -55
- package/dist/hooks/use-battery-optimization.js +78 -55
- package/dist/hooks/use-battery-status.esm.js +73 -51
- package/dist/hooks/use-battery-status.js +73 -51
- package/dist/hooks/use-component-performance.esm.js +62 -47
- package/dist/hooks/use-component-performance.js +62 -47
- package/dist/hooks/use-device-loading-states.esm.js +152 -109
- package/dist/hooks/use-device-loading-states.js +152 -109
- package/dist/hooks/use-device.esm.js +25 -14
- package/dist/hooks/use-device.js +25 -14
- package/dist/hooks/use-enterprise-mobile-experience.esm.js +137 -88
- package/dist/hooks/use-enterprise-mobile-experience.js +137 -88
- package/dist/hooks/use-form-feedback.esm.js +124 -81
- package/dist/hooks/use-form-feedback.js +124 -81
- package/dist/hooks/use-form-performance.esm.js +127 -92
- package/dist/hooks/use-form-performance.js +127 -92
- package/dist/hooks/use-frame-rate.esm.js +56 -37
- package/dist/hooks/use-frame-rate.js +56 -37
- package/dist/hooks/use-gestures.esm.js +96 -72
- package/dist/hooks/use-gestures.js +96 -72
- package/dist/hooks/use-hardware-acceleration.esm.js +65 -37
- package/dist/hooks/use-hardware-acceleration.js +65 -37
- package/dist/hooks/use-input-accessibility.esm.js +157 -119
- package/dist/hooks/use-input-accessibility.js +157 -119
- package/dist/hooks/use-input-performance.esm.js +139 -104
- package/dist/hooks/use-input-performance.js +139 -104
- package/dist/hooks/use-layout-performance.esm.js +50 -29
- package/dist/hooks/use-layout-performance.js +50 -29
- package/dist/hooks/use-loading-accessibility.esm.js +209 -169
- package/dist/hooks/use-loading-accessibility.js +209 -169
- package/dist/hooks/use-loading-performance.esm.js +117 -93
- package/dist/hooks/use-loading-performance.js +117 -93
- package/dist/hooks/use-memory-usage.esm.js +57 -38
- package/dist/hooks/use-memory-usage.js +57 -38
- package/dist/hooks/use-mobile-form-layout.esm.js +111 -74
- package/dist/hooks/use-mobile-form-layout.js +111 -74
- package/dist/hooks/use-mobile-form-validation.esm.js +211 -144
- package/dist/hooks/use-mobile-form-validation.js +211 -144
- package/dist/hooks/use-mobile-keyboard-optimization.esm.js +154 -113
- package/dist/hooks/use-mobile-keyboard-optimization.js +154 -113
- package/dist/hooks/use-mobile-layout.esm.js +73 -51
- package/dist/hooks/use-mobile-layout.js +73 -51
- package/dist/hooks/use-mobile-optimization.esm.js +72 -44
- package/dist/hooks/use-mobile-optimization.js +72 -44
- package/dist/hooks/use-mobile-skeleton.esm.js +97 -64
- package/dist/hooks/use-mobile-skeleton.js +97 -64
- package/dist/hooks/use-mobile-touch.esm.js +128 -93
- package/dist/hooks/use-mobile-touch.js +128 -93
- package/dist/hooks/use-performance-throttling.esm.js +72 -48
- package/dist/hooks/use-performance-throttling.js +72 -48
- package/dist/hooks/use-performance.esm.js +90 -52
- package/dist/hooks/use-performance.js +90 -52
- package/dist/hooks/use-reusable-architecture.esm.js +94 -65
- package/dist/hooks/use-reusable-architecture.js +94 -65
- package/dist/hooks/use-semantic-input-types.esm.js +166 -124
- package/dist/hooks/use-semantic-input-types.js +166 -124
- package/dist/hooks/use-semantic-input.esm.js +178 -126
- package/dist/hooks/use-semantic-input.js +178 -126
- package/dist/hooks/use-tablet-layout.esm.js +67 -38
- package/dist/hooks/use-tablet-layout.js +67 -38
- package/dist/hooks/use-touch-friendly-input.esm.js +193 -149
- package/dist/hooks/use-touch-friendly-input.js +193 -149
- package/dist/hooks/use-touch-friendly-interface.esm.js +99 -67
- package/dist/hooks/use-touch-friendly-interface.js +99 -67
- package/dist/hooks/use-touch-optimization.esm.js +99 -72
- package/dist/hooks/use-touch-optimization.js +99 -72
- package/dist/index.esm.js +289 -280
- package/dist/index.js +289 -280
- package/dist/lib/utils.esm.js +1 -1
- package/dist/lib/utils.js +1 -1
- package/dist/plugins/theme-css-generator.esm.js +104 -55
- package/dist/plugins/theme-css-generator.js +104 -55
- package/dist/provider.esm.js +4 -4
- package/dist/provider.js +4 -4
- package/dist/styles.css +1 -1
- package/dist/theme.esm.js +633 -468
- package/dist/theme.js +633 -468
- package/dist/themes/ThemeContext.esm.js +15 -15
- package/dist/themes/ThemeContext.js +15 -15
- package/dist/themes/ThemeProvider.esm.js +25 -22
- package/dist/themes/ThemeProvider.js +25 -22
- package/dist/themes/accessibility.esm.js +147 -108
- package/dist/themes/accessibility.js +147 -108
- package/dist/themes/aria-patterns.esm.js +198 -162
- package/dist/themes/aria-patterns.js +198 -162
- package/dist/themes/base-themes.esm.js +14 -11
- package/dist/themes/base-themes.js +14 -11
- package/dist/themes/colorManager.esm.js +101 -83
- package/dist/themes/colorManager.js +101 -83
- package/dist/themes/examples/dark-theme.esm.js +133 -103
- package/dist/themes/examples/dark-theme.js +133 -103
- package/dist/themes/examples/minimal-theme.esm.js +83 -61
- package/dist/themes/examples/minimal-theme.js +83 -61
- package/dist/themes/focus-management.esm.js +202 -143
- package/dist/themes/focus-management.js +202 -143
- package/dist/themes/fontLoader.esm.js +28 -19
- package/dist/themes/fontLoader.js +28 -19
- package/dist/themes/high-contrast.esm.js +152 -104
- package/dist/themes/high-contrast.js +152 -104
- package/dist/themes/inheritance.esm.js +35 -27
- package/dist/themes/inheritance.js +35 -27
- package/dist/themes/keyboard-navigation.esm.js +152 -123
- package/dist/themes/keyboard-navigation.js +152 -123
- package/dist/themes/motion-reduction.esm.js +193 -133
- package/dist/themes/motion-reduction.js +193 -133
- package/dist/themes/navigation.esm.js +146 -146
- package/dist/themes/navigation.js +146 -146
- package/dist/themes/screen-reader.esm.js +159 -94
- package/dist/themes/screen-reader.js +159 -94
- package/dist/themes/systemThemeDetector.esm.js +42 -34
- package/dist/themes/systemThemeDetector.js +42 -34
- package/dist/themes/themeCSSUpdater.esm.js +21 -9
- package/dist/themes/themeCSSUpdater.js +21 -9
- package/dist/themes/themePersistence.esm.js +68 -47
- package/dist/themes/themePersistence.js +68 -47
- package/dist/themes/themes/stan-design.esm.js +633 -468
- package/dist/themes/themes/stan-design.js +633 -468
- package/dist/themes/types.esm.js +301 -287
- package/dist/themes/types.js +301 -287
- package/dist/themes/useSystemTheme.esm.js +4 -4
- package/dist/themes/useSystemTheme.js +4 -4
- package/dist/themes/useTheme.esm.js +4 -4
- package/dist/themes/useTheme.js +4 -4
- package/dist/themes/validation.esm.js +128 -77
- package/dist/themes/validation.js +128 -77
- package/dist/tokens/index.esm.js +15 -4
- package/dist/tokens/index.js +15 -4
- package/dist/tokens/tokenExporter.esm.js +87 -61
- package/dist/tokens/tokenExporter.js +87 -61
- package/dist/tokens/tokenGenerator.esm.js +86 -77
- package/dist/tokens/tokenGenerator.js +86 -77
- package/dist/tokens/tokenManager.esm.js +64 -51
- package/dist/tokens/tokenManager.js +64 -51
- package/dist/tokens/tokenValidator.esm.js +193 -147
- package/dist/tokens/tokenValidator.js +193 -147
- package/dist/tokens/types.esm.js +49 -35
- package/dist/tokens/types.js +49 -35
- package/dist/utils/bundle-analyzer.esm.js +83 -65
- package/dist/utils/bundle-analyzer.js +83 -65
- package/dist/utils/bundle-splitting.esm.js +142 -117
- package/dist/utils/bundle-splitting.js +142 -117
- package/dist/utils/lazy-loading.esm.js +132 -106
- package/dist/utils/lazy-loading.js +132 -106
- package/dist/utils/performance-monitor.esm.js +170 -129
- package/dist/utils/performance-monitor.js +170 -129
- package/dist/utils/tree-shaking.esm.js +69 -61
- package/dist/utils/tree-shaking.js +69 -61
- package/package.json +1 -1
- package/src/index.ts +146 -146
|
@@ -1,26 +1,48 @@
|
|
|
1
1
|
import { useState, useCallback, useRef, useEffect } from 'react'
|
|
2
2
|
|
|
3
3
|
export interface BatteryConsciousLoadingConfig {
|
|
4
|
-
enableBatteryMonitoring
|
|
4
|
+
enableBatteryMonitoring?: boolean
|
|
5
|
+
enableLoadingOptimization?: boolean
|
|
6
|
+
enablePerformanceAdjustment?: boolean
|
|
7
|
+
enableUserNotification?: boolean
|
|
8
|
+
enableAutoOptimization?: boolean
|
|
9
|
+
batteryThresholds?: {
|
|
10
|
+
critical: number
|
|
11
|
+
low: number
|
|
12
|
+
medium: number
|
|
13
|
+
high: number
|
|
14
|
+
}
|
|
5
15
|
|
|
6
16
|
}
|
|
7
17
|
|
|
8
18
|
export interface BatteryState {
|
|
9
|
-
level
|
|
19
|
+
level: number
|
|
20
|
+
charging: boolean
|
|
21
|
+
chargingTime: number
|
|
22
|
+
dischargingTime: number
|
|
23
|
+
status: 'critical' | 'low' | 'medium' | 'high' | 'full'
|
|
24
|
+
}
|
|
10
25
|
|
|
11
26
|
export interface LoadingOptimization {
|
|
12
|
-
id
|
|
27
|
+
id: string
|
|
28
|
+
name: string
|
|
29
|
+
type: 'battery' | 'performance' | 'animation' | 'memory'
|
|
30
|
+
applied: boolean
|
|
31
|
+
impact: 'low' | 'medium' | 'high'
|
|
32
|
+
description: string
|
|
33
|
+
batterySavings: number
|
|
34
|
+
}
|
|
13
35
|
|
|
14
36
|
export interface BatteryConsciousLoadingCallbacks {
|
|
15
|
-
onBatteryLevelChanged
|
|
16
|
-
onLoadingOptimized
|
|
17
|
-
onPerformanceAdjusted
|
|
18
|
-
onUserNotified
|
|
37
|
+
onBatteryLevelChanged?: (batteryState: BatteryState) => void
|
|
38
|
+
onLoadingOptimized?: (optimization: LoadingOptimization) => void
|
|
39
|
+
onPerformanceAdjusted?: (adjustment: string) => void
|
|
40
|
+
onUserNotified?: (notification: string) => void
|
|
19
41
|
}
|
|
20
42
|
|
|
21
43
|
export const useBatteryConsciousLoading = (
|
|
22
|
-
config= {},
|
|
23
|
-
callbacks= {}
|
|
44
|
+
config: BatteryConsciousLoadingConfig = {},
|
|
45
|
+
callbacks: BatteryConsciousLoadingCallbacks = {}
|
|
24
46
|
) => {
|
|
25
47
|
const {
|
|
26
48
|
enableBatteryMonitoring = true,
|
|
@@ -29,19 +51,21 @@ export const useBatteryConsciousLoading = (
|
|
|
29
51
|
enableUserNotification = true,
|
|
30
52
|
enableAutoOptimization = true,
|
|
31
53
|
batteryThresholds = {
|
|
32
|
-
critical,
|
|
33
|
-
low,
|
|
34
|
-
medium,
|
|
35
|
-
high
|
|
54
|
+
critical: 0.1,
|
|
55
|
+
low: 0.3,
|
|
56
|
+
medium: 0.7,
|
|
57
|
+
high: 0.9
|
|
58
|
+
},
|
|
36
59
|
|
|
37
60
|
} = config
|
|
38
61
|
|
|
39
62
|
const [batteryState, setBatteryState] = useState<BatteryState>({
|
|
40
|
-
level,
|
|
41
|
-
charging,
|
|
42
|
-
chargingTime,
|
|
43
|
-
dischargingTime,
|
|
44
|
-
status
|
|
63
|
+
level: 1,
|
|
64
|
+
charging: false,
|
|
65
|
+
chargingTime: 0,
|
|
66
|
+
dischargingTime: 0,
|
|
67
|
+
status: 'full'
|
|
68
|
+
})
|
|
45
69
|
|
|
46
70
|
const [loadingOptimizations, setLoadingOptimizations] = useState<LoadingOptimization[]>([])
|
|
47
71
|
const [isOptimizing, setIsOptimizing] = useState(false)
|
|
@@ -66,13 +90,14 @@ export const useBatteryConsciousLoading = (
|
|
|
66
90
|
const chargingTime = battery.chargingTime || 0
|
|
67
91
|
const dischargingTime = battery.dischargingTime || 0
|
|
68
92
|
|
|
69
|
-
let status
|
|
93
|
+
let status: 'critical' | 'low' | 'medium' | 'high' | 'full'
|
|
94
|
+
if (level <= batteryThresholds.critical) status = 'critical'
|
|
70
95
|
else if (level <= batteryThresholds.low) status = 'low'
|
|
71
96
|
else if (level <= batteryThresholds.medium) status = 'medium'
|
|
72
97
|
else if (level <= batteryThresholds.high) status = 'high'
|
|
73
98
|
else status = 'full'
|
|
74
99
|
|
|
75
|
-
const newBatteryState= {
|
|
100
|
+
const newBatteryState: BatteryState = {
|
|
76
101
|
level,
|
|
77
102
|
charging,
|
|
78
103
|
chargingTime,
|
|
@@ -89,7 +114,7 @@ export const useBatteryConsciousLoading = (
|
|
|
89
114
|
}
|
|
90
115
|
}
|
|
91
116
|
} catch (error) {
|
|
92
|
-
console.warn('Battery monitoring failed, error)
|
|
117
|
+
console.warn('Battery monitoring failed:', error)
|
|
93
118
|
}
|
|
94
119
|
}
|
|
95
120
|
|
|
@@ -107,84 +132,96 @@ export const useBatteryConsciousLoading = (
|
|
|
107
132
|
}, [enableBatteryMonitoring, batteryThresholds, enableAutoOptimization, callbacks])
|
|
108
133
|
|
|
109
134
|
// Auto-optimize for battery level
|
|
110
|
-
const autoOptimizeForBattery = useCallback((batteryState) => {
|
|
135
|
+
const autoOptimizeForBattery = useCallback((batteryState: BatteryState) => {
|
|
111
136
|
if (!enableLoadingOptimization) return
|
|
112
137
|
|
|
113
138
|
setIsOptimizing(true)
|
|
114
139
|
|
|
115
140
|
setTimeout(() => {
|
|
116
|
-
let newPerformanceMode
|
|
141
|
+
let newPerformanceMode: 'minimal' | 'balanced' | 'full'
|
|
142
|
+
let optimizations: LoadingOptimization[] = []
|
|
117
143
|
let savings = 0
|
|
118
144
|
|
|
119
145
|
switch (batteryState.status) {
|
|
120
|
-
case 'critical'
|
|
146
|
+
case 'critical':
|
|
147
|
+
newPerformanceMode = 'minimal'
|
|
121
148
|
optimizations = [
|
|
122
149
|
{
|
|
123
|
-
id,
|
|
124
|
-
name,
|
|
125
|
-
type,
|
|
126
|
-
applied,
|
|
127
|
-
impact,
|
|
128
|
-
description,
|
|
129
|
-
batterySavings
|
|
150
|
+
id: 'battery-critical-1',
|
|
151
|
+
name: 'Critical Battery Mode',
|
|
152
|
+
type: 'battery',
|
|
153
|
+
applied: true,
|
|
154
|
+
impact: 'high',
|
|
155
|
+
description: 'Minimal loading animations and reduced complexity for critical battery',
|
|
156
|
+
batterySavings: 40
|
|
157
|
+
},
|
|
130
158
|
{
|
|
131
|
-
id,
|
|
132
|
-
name,
|
|
133
|
-
type,
|
|
134
|
-
applied,
|
|
135
|
-
impact,
|
|
136
|
-
description,
|
|
137
|
-
batterySavings
|
|
159
|
+
id: 'battery-critical-2',
|
|
160
|
+
name: 'Ultra-Low Power Loading',
|
|
161
|
+
type: 'performance',
|
|
162
|
+
applied: true,
|
|
163
|
+
impact: 'high',
|
|
164
|
+
description: 'Ultra-low power loading states with minimal visual effects',
|
|
165
|
+
batterySavings: 35
|
|
166
|
+
}
|
|
138
167
|
]
|
|
139
168
|
savings = 75
|
|
140
169
|
break
|
|
141
170
|
|
|
142
|
-
case 'low'
|
|
171
|
+
case 'low':
|
|
172
|
+
newPerformanceMode = 'minimal'
|
|
143
173
|
optimizations = [
|
|
144
174
|
{
|
|
145
|
-
id,
|
|
146
|
-
name,
|
|
147
|
-
type,
|
|
148
|
-
applied,
|
|
149
|
-
impact,
|
|
150
|
-
description,
|
|
151
|
-
batterySavings
|
|
175
|
+
id: 'battery-low-1',
|
|
176
|
+
name: 'Low Battery Mode',
|
|
177
|
+
type: 'battery',
|
|
178
|
+
applied: true,
|
|
179
|
+
impact: 'medium',
|
|
180
|
+
description: 'Reduced loading animations and optimized performance for low battery',
|
|
181
|
+
batterySavings: 25
|
|
182
|
+
},
|
|
152
183
|
{
|
|
153
|
-
id,
|
|
154
|
-
name,
|
|
155
|
-
type,
|
|
156
|
-
applied,
|
|
157
|
-
impact,
|
|
158
|
-
description,
|
|
159
|
-
batterySavings
|
|
184
|
+
id: 'battery-low-2',
|
|
185
|
+
name: 'Efficient Loading States',
|
|
186
|
+
type: 'animation',
|
|
187
|
+
applied: true,
|
|
188
|
+
impact: 'medium',
|
|
189
|
+
description: 'Efficient loading states with minimal battery impact',
|
|
190
|
+
batterySavings: 20
|
|
191
|
+
}
|
|
160
192
|
]
|
|
161
193
|
savings = 45
|
|
162
194
|
break
|
|
163
195
|
|
|
164
|
-
case 'medium'
|
|
196
|
+
case 'medium':
|
|
197
|
+
newPerformanceMode = 'balanced'
|
|
165
198
|
optimizations = [
|
|
166
199
|
{
|
|
167
|
-
id,
|
|
168
|
-
name,
|
|
169
|
-
type,
|
|
170
|
-
applied,
|
|
171
|
-
impact,
|
|
172
|
-
description,
|
|
173
|
-
batterySavings
|
|
200
|
+
id: 'battery-medium-1',
|
|
201
|
+
name: 'Balanced Battery Mode',
|
|
202
|
+
type: 'battery',
|
|
203
|
+
applied: true,
|
|
204
|
+
impact: 'low',
|
|
205
|
+
description: 'Balanced loading animations with moderate battery optimization',
|
|
206
|
+
batterySavings: 15
|
|
207
|
+
}
|
|
174
208
|
]
|
|
175
209
|
savings = 15
|
|
176
210
|
break
|
|
177
211
|
|
|
178
|
-
case 'high'
|
|
212
|
+
case 'high':
|
|
213
|
+
case 'full':
|
|
214
|
+
newPerformanceMode = 'full'
|
|
179
215
|
optimizations = [
|
|
180
216
|
{
|
|
181
|
-
id,
|
|
182
|
-
name,
|
|
183
|
-
type,
|
|
184
|
-
applied,
|
|
185
|
-
impact,
|
|
186
|
-
description,
|
|
187
|
-
batterySavings
|
|
217
|
+
id: 'battery-high-1',
|
|
218
|
+
name: 'Full Performance Mode',
|
|
219
|
+
type: 'battery',
|
|
220
|
+
applied: true,
|
|
221
|
+
impact: 'low',
|
|
222
|
+
description: 'Full loading animations with minimal battery restrictions',
|
|
223
|
+
batterySavings: 5
|
|
224
|
+
}
|
|
188
225
|
]
|
|
189
226
|
savings = 5
|
|
190
227
|
break
|
|
@@ -197,7 +234,7 @@ export const useBatteryConsciousLoading = (
|
|
|
197
234
|
|
|
198
235
|
// Notify user if enabled
|
|
199
236
|
if (enableUserNotification) {
|
|
200
|
-
const notification = `Battery optimization applied} mode with ${savings}% battery savings`
|
|
237
|
+
const notification = `Battery optimization applied: ${newPerformanceMode} mode with ${savings}% battery savings`
|
|
201
238
|
setNotifications(prev => [...prev, notification])
|
|
202
239
|
callbacks.onUserNotified?.(notification)
|
|
203
240
|
}
|
|
@@ -223,23 +260,25 @@ export const useBatteryConsciousLoading = (
|
|
|
223
260
|
setIsOptimizing(true)
|
|
224
261
|
|
|
225
262
|
setTimeout(() => {
|
|
226
|
-
const manualOptimizations] = [
|
|
263
|
+
const manualOptimizations: LoadingOptimization[] = [
|
|
227
264
|
{
|
|
228
|
-
id,
|
|
229
|
-
name,
|
|
230
|
-
type,
|
|
231
|
-
applied,
|
|
232
|
-
impact,
|
|
233
|
-
description,
|
|
234
|
-
batterySavings
|
|
265
|
+
id: 'manual-battery-1',
|
|
266
|
+
name: 'Manual Battery Optimization',
|
|
267
|
+
type: 'battery',
|
|
268
|
+
applied: true,
|
|
269
|
+
impact: 'medium',
|
|
270
|
+
description: 'Manually applied battery-conscious loading optimization',
|
|
271
|
+
batterySavings: 20
|
|
272
|
+
},
|
|
235
273
|
{
|
|
236
|
-
id,
|
|
237
|
-
name,
|
|
238
|
-
type,
|
|
239
|
-
applied,
|
|
240
|
-
impact,
|
|
241
|
-
description,
|
|
242
|
-
batterySavings
|
|
274
|
+
id: 'manual-performance-1',
|
|
275
|
+
name: 'Performance Adjustment',
|
|
276
|
+
type: 'performance',
|
|
277
|
+
applied: true,
|
|
278
|
+
impact: 'medium',
|
|
279
|
+
description: 'Performance adjusted for optimal battery usage',
|
|
280
|
+
batterySavings: 15
|
|
281
|
+
}
|
|
243
282
|
]
|
|
244
283
|
|
|
245
284
|
setLoadingOptimizations(prev => [...prev, ...manualOptimizations])
|
|
@@ -266,23 +305,25 @@ export const useBatteryConsciousLoading = (
|
|
|
266
305
|
setIsOptimizing(true)
|
|
267
306
|
|
|
268
307
|
setTimeout(() => {
|
|
269
|
-
const memoryOptimizations] = [
|
|
308
|
+
const memoryOptimizations: LoadingOptimization[] = [
|
|
270
309
|
{
|
|
271
|
-
id,
|
|
272
|
-
name,
|
|
273
|
-
type,
|
|
274
|
-
applied,
|
|
275
|
-
impact,
|
|
276
|
-
description,
|
|
277
|
-
batterySavings
|
|
310
|
+
id: 'memory-battery-1',
|
|
311
|
+
name: 'Memory Optimization for Battery',
|
|
312
|
+
type: 'memory',
|
|
313
|
+
applied: true,
|
|
314
|
+
impact: 'medium',
|
|
315
|
+
description: 'Memory usage optimized to reduce battery consumption',
|
|
316
|
+
batterySavings: 10
|
|
317
|
+
},
|
|
278
318
|
{
|
|
279
|
-
id,
|
|
280
|
-
name,
|
|
281
|
-
type,
|
|
282
|
-
applied,
|
|
283
|
-
impact,
|
|
284
|
-
description,
|
|
285
|
-
batterySavings
|
|
319
|
+
id: 'memory-battery-2',
|
|
320
|
+
name: 'Efficient Memory Management',
|
|
321
|
+
type: 'memory',
|
|
322
|
+
applied: true,
|
|
323
|
+
impact: 'low',
|
|
324
|
+
description: 'Efficient memory management for battery-conscious loading',
|
|
325
|
+
batterySavings: 8
|
|
326
|
+
}
|
|
286
327
|
]
|
|
287
328
|
|
|
288
329
|
setLoadingOptimizations(prev => [...prev, ...memoryOptimizations])
|
|
@@ -309,23 +350,25 @@ export const useBatteryConsciousLoading = (
|
|
|
309
350
|
setIsOptimizing(true)
|
|
310
351
|
|
|
311
352
|
setTimeout(() => {
|
|
312
|
-
const animationOptimizations] = [
|
|
353
|
+
const animationOptimizations: LoadingOptimization[] = [
|
|
313
354
|
{
|
|
314
|
-
id,
|
|
315
|
-
name,
|
|
316
|
-
type,
|
|
317
|
-
applied,
|
|
318
|
-
impact,
|
|
319
|
-
description,
|
|
320
|
-
batterySavings
|
|
355
|
+
id: 'animation-battery-1',
|
|
356
|
+
name: 'Battery-Conscious Animations',
|
|
357
|
+
type: 'animation',
|
|
358
|
+
applied: true,
|
|
359
|
+
impact: 'high',
|
|
360
|
+
description: 'Animations optimized for minimal battery impact',
|
|
361
|
+
batterySavings: 25
|
|
362
|
+
},
|
|
321
363
|
{
|
|
322
|
-
id,
|
|
323
|
-
name,
|
|
324
|
-
type,
|
|
325
|
-
applied,
|
|
326
|
-
impact,
|
|
327
|
-
description,
|
|
328
|
-
batterySavings
|
|
364
|
+
id: 'animation-battery-2',
|
|
365
|
+
name: 'Reduced Animation Complexity',
|
|
366
|
+
type: 'animation',
|
|
367
|
+
applied: true,
|
|
368
|
+
impact: 'medium',
|
|
369
|
+
description: 'Animation complexity reduced for battery optimization',
|
|
370
|
+
batterySavings: 20
|
|
371
|
+
}
|
|
329
372
|
]
|
|
330
373
|
|
|
331
374
|
setLoadingOptimizations(prev => [...prev, ...animationOptimizations])
|
|
@@ -347,7 +390,7 @@ export const useBatteryConsciousLoading = (
|
|
|
347
390
|
|
|
348
391
|
// Get battery-aware loading recommendations
|
|
349
392
|
const getBatteryLoadingRecommendations = useCallback(() => {
|
|
350
|
-
const recommendations] = []
|
|
393
|
+
const recommendations: string[] = []
|
|
351
394
|
|
|
352
395
|
if (batteryState.status === 'critical') {
|
|
353
396
|
recommendations.push('Use minimal loading animations to preserve battery')
|
|
@@ -417,13 +460,13 @@ export const useBatteryConsciousLoading = (
|
|
|
417
460
|
autoOptimizeForBattery,
|
|
418
461
|
|
|
419
462
|
// Utility functions
|
|
420
|
-
isBatteryCritical) => batteryState.status === 'critical',
|
|
421
|
-
isBatteryLow) => batteryState.status === 'low',
|
|
422
|
-
isBatteryOptimized) => batterySavings > 0,
|
|
423
|
-
getBatteryPercentage) => Math.round(batteryState.level * 100),
|
|
424
|
-
getBatteryStatus) => batteryState.status,
|
|
425
|
-
getPerformanceMode) => performanceMode,
|
|
426
|
-
getBatterySavings) => batterySavings,
|
|
463
|
+
isBatteryCritical: () => batteryState.status === 'critical',
|
|
464
|
+
isBatteryLow: () => batteryState.status === 'low',
|
|
465
|
+
isBatteryOptimized: () => batterySavings > 0,
|
|
466
|
+
getBatteryPercentage: () => Math.round(batteryState.level * 100),
|
|
467
|
+
getBatteryStatus: () => batteryState.status,
|
|
468
|
+
getPerformanceMode: () => performanceMode,
|
|
469
|
+
getBatterySavings: () => batterySavings,
|
|
427
470
|
getBatteryLoadingRecommendations,
|
|
428
471
|
clearOptimizations
|
|
429
472
|
}
|