Spaces:
Sleeping
Sleeping
Update src/components/WorldTreeVisualizer.tsx
Browse files
src/components/WorldTreeVisualizer.tsx
CHANGED
|
@@ -2232,6 +2232,54 @@ export const WorldTreeVisualizer: React.FC<WorldTreeVisualizerProps> = ({ audioE
|
|
| 2232 |
</div>
|
| 2233 |
</div>
|
| 2234 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2235 |
<div style={{ marginBottom: '10px' }}>
|
| 2236 |
<label style={{ display: 'block', marginBottom: '5px', fontSize: '12px' }}>
|
| 2237 |
<input
|
|
|
|
| 2232 |
</div>
|
| 2233 |
</div>
|
| 2234 |
|
| 2235 |
+
{/* Manual Refresh Button */}
|
| 2236 |
+
<div style={{ marginBottom: '15px' }}>
|
| 2237 |
+
<button
|
| 2238 |
+
onClick={() => performHiddenRefresh(true)}
|
| 2239 |
+
disabled={autoRefreshRef.current.isRefreshing}
|
| 2240 |
+
style={{
|
| 2241 |
+
width: '100%',
|
| 2242 |
+
padding: '8px 12px',
|
| 2243 |
+
background: autoRefreshRef.current.isRefreshing
|
| 2244 |
+
? 'linear-gradient(135deg, var(--copper-dark), var(--teal-dark))'
|
| 2245 |
+
: 'linear-gradient(135deg, var(--marble-dark), var(--copper-medium))',
|
| 2246 |
+
border: '2px solid var(--copper-medium)',
|
| 2247 |
+
borderRadius: '6px',
|
| 2248 |
+
color: autoRefreshRef.current.isRefreshing ? 'var(--copper-medium)' : 'var(--copper-bright)',
|
| 2249 |
+
fontFamily: 'Uncial Antiqua, serif',
|
| 2250 |
+
fontSize: '10px',
|
| 2251 |
+
cursor: autoRefreshRef.current.isRefreshing ? 'not-allowed' : 'pointer',
|
| 2252 |
+
transition: 'all 0.3s ease-in-out',
|
| 2253 |
+
backdropFilter: 'blur(5px)',
|
| 2254 |
+
opacity: autoRefreshRef.current.isRefreshing ? 0.6 : 1,
|
| 2255 |
+
textShadow: '0 1px 2px rgba(0,0,0,0.5)'
|
| 2256 |
+
}}
|
| 2257 |
+
onMouseEnter={(e) => {
|
| 2258 |
+
if (!autoRefreshRef.current.isRefreshing) {
|
| 2259 |
+
e.currentTarget.style.borderColor = 'var(--transmission-glow)'
|
| 2260 |
+
e.currentTarget.style.background = 'linear-gradient(135deg, var(--copper-medium), var(--transmission-glow))'
|
| 2261 |
+
e.currentTarget.style.color = 'var(--marble-light)'
|
| 2262 |
+
e.currentTarget.style.transform = 'scale(1.02)'
|
| 2263 |
+
e.currentTarget.style.boxShadow = '0 4px 15px var(--transmission-glow)33'
|
| 2264 |
+
}
|
| 2265 |
+
}}
|
| 2266 |
+
onMouseLeave={(e) => {
|
| 2267 |
+
if (!autoRefreshRef.current.isRefreshing) {
|
| 2268 |
+
e.currentTarget.style.borderColor = 'var(--copper-medium)'
|
| 2269 |
+
e.currentTarget.style.background = 'linear-gradient(135deg, var(--marble-dark), var(--copper-medium))'
|
| 2270 |
+
e.currentTarget.style.color = 'var(--copper-bright)'
|
| 2271 |
+
e.currentTarget.style.transform = 'scale(1)'
|
| 2272 |
+
e.currentTarget.style.boxShadow = 'none'
|
| 2273 |
+
}
|
| 2274 |
+
}}
|
| 2275 |
+
>
|
| 2276 |
+
<span className="rune" style={{ marginRight: '6px' }}>
|
| 2277 |
+
{autoRefreshRef.current.isRefreshing ? '⧗' : '⟲'}
|
| 2278 |
+
</span>
|
| 2279 |
+
{autoRefreshRef.current.isRefreshing ? 'restoring equilibrium...' : 'reset particle fields'}
|
| 2280 |
+
</button>
|
| 2281 |
+
</div>
|
| 2282 |
+
|
| 2283 |
<div style={{ marginBottom: '10px' }}>
|
| 2284 |
<label style={{ display: 'block', marginBottom: '5px', fontSize: '12px' }}>
|
| 2285 |
<input
|