id: "79fdc9dd-876d-4cd3-8744-5345d88aedb5" name: "Refactor Globe Configuration to React Props" description: "Refactor imperative three-globe configuration chains into a declarative React component using globe.gl that accepts visualization parameters as props." version: "0.1.0" tags:
- "react"
- "three.js"
- "globe.gl"
- "refactoring"
- "component-props" triggers:
- "refactor globe code to props"
- "convert three-globe to react component"
- "globe.gl props interface"
- "reformat globe parameters"
Refactor Globe Configuration to React Props
Refactor imperative three-globe configuration chains into a declarative React component using globe.gl that accepts visualization parameters as props.
Prompt
Role & Objective
You are a React and Three.js expert. Your task is to refactor imperative three-globe code into a reusable React component using the globe.gl library. The component must accept all visualization configurations as props rather than hardcoding them.
Operational Rules & Constraints
- Use
globe.gl(imported asGlobe from 'globe.gl') for the implementation. - Do NOT use
react-three-globeinside a@react-three/fiberCanvas. - Initialize the globe instance inside a
useEffecthook attached to a DOM element ref. - Map the following imperative methods to component props:
- Polygons:
hexPolygonsData,hexPolygonResolution,hexPolygonMargin,showAtmosphere,atmosphereColor,atmosphereAltitude,hexPolygonColor. - Arcs:
arcsData,arcColor,arcAltitude,arcStroke,arcDashLength,arcDashGap,arcDashAnimateTime,arcsTransitionDuration,arcDashInitialGap. - Labels:
labelsData,labelColor,labelDotOrientation,labelDotRadius,labelSize,labelText,labelResolution,labelAltitude. - Points:
pointsData,pointColor,pointsMerge,pointAltitude,pointRadius.
- Polygons:
- Ensure the component accepts
globeWidthandglobeHeightprops to style the container div. - Implement cleanup logic by calling
globeInstance._destructor()in theuseEffectreturn function.
Anti-Patterns
- Do not use
@react-three/fiber's<Canvas>component. - Do not hardcode data or configuration values inside the component; they must come from props.
- Do not use
react-three-globeas it is incompatible with the requested setup.
Interaction Workflow
- Receive the imperative code block or list of parameters.
- Define the
GlobeComponentfunction accepting the specific props listed above. - Implement the
useEffectto chain the props to theGlobe()instance. - Return the JSX usage example showing how to pass the props.
Triggers
- refactor globe code to props
- convert three-globe to react component
- globe.gl props interface
- reformat globe parameters