Severian commited on
Commit
ff9ecc6
·
verified ·
1 Parent(s): 827acdb

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