diff --git a/example/MapComponent.jsx b/example/MapComponent.jsx
index 8163296..44d1830 100644
--- a/example/MapComponent.jsx
+++ b/example/MapComponent.jsx
@@ -1,15 +1,16 @@
// development
-import TurkeyMap from './../src/TurkeyMap'
+import TurkeyMap from "./../src/TurkeyMap";
// build test
// import TurkeyMap from './../build/TurkeyMap'
// npm test
// import TurkeyMap from 'react-turkey-map'
-export default ({ colorData, tooltipData }) => {
+export default ({ colorData, tooltipData, onClick }) => {
return (
- )
-}
+ );
+};
diff --git a/example/index.jsx b/example/index.jsx
index ad6c053..2cd0890 100644
--- a/example/index.jsx
+++ b/example/index.jsx
@@ -1,29 +1,30 @@
/** @jsxImportSource @emotion/react */
-import { useState } from 'react'
-import { createRoot } from 'react-dom/client'
+import { useState } from "react";
+import { createRoot } from "react-dom/client";
-import styles from './styles'
-import Buttons from './Buttons'
-import MapComponent from './MapComponent'
+import styles from "./styles";
+import Buttons from "./Buttons";
+import MapComponent from "./MapComponent";
const App = () => {
- const [colorData, setColorData] = useState({})
- const [tooltipData, setTooltipData] = useState({})
+ const [colorData, setColorData] = useState({});
+ const [tooltipData, setTooltipData] = useState({});
+
+ const handleOnClick = (city, plate) => {
+ console.log(`City: ${city}, Plate: ${plate}`);
+ };
return (
-
+
- )
-}
+ );
+};
-createRoot(document.getElementById('app'))
- .render()
+createRoot(document.getElementById("app")).render();
diff --git a/package-lock.json b/package-lock.json
index d988e9b..0049f40 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "react-turkey-map",
- "version": "1.0.11",
+ "version": "1.0.19",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "react-turkey-map",
- "version": "1.0.11",
+ "version": "1.0.19",
"license": "MIT",
"devDependencies": {
"@babel/core": "^7.24.6",
diff --git a/src/TurkeyMap.jsx b/src/TurkeyMap.jsx
index 250f79d..da4f364 100644
--- a/src/TurkeyMap.jsx
+++ b/src/TurkeyMap.jsx
@@ -1,46 +1,56 @@
/** @jsxImportSource @emotion/react */
-import React, { useState } from 'react'
+import { useState } from "react";
-import cities from './cities'
-import styles from './styles'
+import cities from "./cities";
+import styles from "./styles";
-export default ({ colorData: _colorData, showTooltip: _showTooltip, tooltipData: _tooltipData }) => {
- const colorData = _colorData || {}
- const showTooltip = _showTooltip !== undefined ? _showTooltip : true
- const tooltipData = _tooltipData || {}
+export default ({
+ colorData: _colorData,
+ showTooltip: _showTooltip,
+ tooltipData: _tooltipData,
+ onClick: _onClick,
+}) => {
+ const colorData = _colorData || {};
+ const showTooltip = _showTooltip !== undefined ? _showTooltip : true;
+ const tooltipData = _tooltipData || {};
+ const onClick = _onClick;
- const [tooltip, setTooltip] = useState('')
- const [position, setPosition] = useState({ top: 0, left: 0 })
+ const [tooltip, setTooltip] = useState("");
+ const [position, setPosition] = useState({ top: 0, left: 0 });
- const handleMouseOver = event => {
- if (event.target.tagName === 'path') {
- const city = event.target.parentNode.getAttribute('data-city')
- const plate = event.target.parentNode.getAttribute('data-plate')
+ const handleMouseOver = (event) => {
+ if (event.target.tagName === "path") {
+ const city = event.target.parentNode.getAttribute("data-city");
+ const plate = event.target.parentNode.getAttribute("data-plate");
const TooltipComponent = (
- {city}{tooltipData[plate] ? `: ${tooltipData[plate]}` : ''}
+ {city}
+ {tooltipData[plate] ? `: ${tooltipData[plate]}` : ""}
- )
- setTooltip(TooltipComponent)
+ );
+ setTooltip(TooltipComponent);
}
- }
+ };
- const handleMouseMove = event => {
- setPosition({ top: event.pageY + 25, left: event.pageX })
- }
+ const handleMouseMove = (event) => {
+ setPosition({ top: event.pageY + 25, left: event.pageX });
+ };
const handleMouseOut = () => {
- setTooltip('')
- }
+ setTooltip("");
+ };
- const handleClick = event => {
- if (event.target.tagName === 'path') {
- const parent = event.target.parentNode
- const city = parent.getAttribute('data-city')
- const plate = parent.getAttribute('data-plate')
- console.log({ city, plate })
+ const handleClick = (event) => {
+ if (event.target.tagName === "path") {
+ const parent = event.target.parentNode;
+ const city = parent.getAttribute("data-city");
+ const plate = parent.getAttribute("data-plate");
+
+ if (onClick) {
+ onClick(city, plate);
+ }
}
- }
+ };
return (
@@ -53,48 +63,39 @@ export default ({ colorData: _colorData, showTooltip: _showTooltip, tooltipData:
- )
-}
+ );
+};