reactjsmaterial-uiannotationsreact-simple-maps

Add borderRadius to AnnotationLabel


I'm using react-simple-maps with react-annotation.

Right now my annotationsLabel looks the first image below:

enter image description here

What I want to do is add borderRadius so that the label looks like the below image:

enter image description here

I've read through the relevant context in the react-annotation docs, however, I have found nothing about adding borderRadius to annotation labels.

Below is the relevant code where I would make the necessary insertions:

import {
    Marker, Annotation, AnnotationProps
  } from "react-simple-maps";
import AnnotationBadge from 'react-annotation/lib/Types/AnnotationBadge';
import {EditableAnnotation,ConnectorEndArrow, ConnectorCurve, Note, AnnotationLabel} from 'react-annotation'
const useStyles = makeStyles((theme) => ({
    root: {
        "&.MuiCard-root": {
          padding: theme.spacing(5),
          background: "#353839",
          borderRadius: theme.spacing(1),
          textAlign: "center",
          width: '80%',
          height: 600,
          marginLeft: 80,
          marginTop: 100
        },
        '& .annotation-note-bg': {
            fillOpacity: 1,
            fill: '#4F5152',
            borderRadius: 8

          },
      },
    }))
const geoUrl =
  "https://raw.githubusercontent.com/zcreativelabs/react-simple-maps/master/topojson-maps/world-110m.json";
const Map = () => {
    const classes = useStyles();
    const theme = useTheme();
    const multiLine2 = `1️⃣first
2️⃣second`;
    // const user = 'users';
    return(
    <Card className={classes.root}>
    <ComposableMap>
      <Geographies geography={geoUrl}>
        {({ geographies }) =>
          geographies.map(geo => 
          <Geography 
          fill={theme.palette.primary.main} 
          key={geo.rsmKey} 
          geography={geo} />)
        }
      </Geographies>
      {markers.map((item) => (
        <Marker key={item.id} coordinates={item.coordinates}>
          <AnnotationLabel
  color={"#fcf9fd"}
  className="show-bg" 
  editMode={true}
  
  note={{
      "title": item.users.toString(),
    "label": `${item.name}
    ${'users'}`,
    "align":"dynamic",
    "textAlign": "center",
    "orientation":"leftRight" ,
    "bgPadding":20,
    "padding":15,
    "titleColor":"#ffffff",
}}
    
/>


        </Marker>
      ))}
    </ComposableMap>
  </Card>
    );
  };
export default Map;

Please see the sandbox link below that I've created. This will show you what I've done and I hope it gives you a better idea of what's happening.

https://codesandbox.io/s/nice-austin-sco6gb?file=/src/App.js


Solution

  • It's a rect Element. You need to give it the rx attribute to give it rounded corners.