diff --git a/frontend/src/components/regex/RegexCard.jsx b/frontend/src/components/regex/RegexCard.jsx index cae86b7..0406aff 100644 --- a/frontend/src/components/regex/RegexCard.jsx +++ b/frontend/src/components/regex/RegexCard.jsx @@ -1,15 +1,31 @@ import PropTypes from 'prop-types'; -function RegexCard({ regex, onEdit, showDate, formatDate }) { +function RegexCard({ regex, onEdit, onClone, showDate, formatDate }) { return (
{regex.pattern}
@@ -43,6 +59,7 @@ RegexCard.propTypes = {
tags: PropTypes.arrayOf(PropTypes.string),
}).isRequired,
onEdit: PropTypes.func.isRequired,
+ onClone: PropTypes.func.isRequired, // Added clone handler prop
showDate: PropTypes.bool.isRequired,
formatDate: PropTypes.func.isRequired,
};
diff --git a/frontend/src/components/regex/RegexManager.jsx b/frontend/src/components/regex/RegexManager.jsx
index ab8d337..405eac6 100644
--- a/frontend/src/components/regex/RegexManager.jsx
+++ b/frontend/src/components/regex/RegexManager.jsx
@@ -45,6 +45,11 @@ function RegexManager() {
handleCloseModal();
};
+ const handleCloneRegex = (regex) => {
+ const clonedRegex = { ...regex, id: 0, name: `${regex.name} [COPY]` };
+ handleOpenModal(clonedRegex);
+ };
+
const formatDate = (dateString) => {
return new Date(dateString).toLocaleString();
};
@@ -68,41 +73,41 @@ function RegexManager() {
return 0;
});
- return (
-