Files
mpaste/src/components/Pastes/PublicPasteItem.jsx
Jose bf40b235f0 refactor: remove unused components and styles; consolidate password handling in new components
- Deleted ProtectedRoute, ContentWrapper, CustomCarousel, CustomContainer, CustomModal, Footer, Header, and Building components as they were no longer needed.
- Removed associated CSS files for the deleted components.
- Introduced PasswordInput and PasswordModal components to handle password input and modal display for protected pastes.
- Updated PastePanel to utilize new PasswordInput and PasswordModal components for better password management.
- Refactored Home component to streamline data fetching and improve readability.
- Enhanced error handling in useData hook and improved session management logic.
2026-03-17 03:57:47 +01:00

30 lines
957 B
JavaScript

import PropTypes from "prop-types";
import { Link } from "react-router-dom";
const trimContent = (text, maxLength = 80) => {
if (!text) return "";
return text.length <= maxLength ? text : text.slice(0, maxLength) + "...";
};
const PublicPasteItem = ({ paste, onSelect }) => {
return (
<div className="public-paste-item p-2 mb-2 rounded custom-border" style={{ cursor: "pointer" }} onClick={() => onSelect(paste.pasteKey)}>
<h5 className="m-0">{(paste.title ?? "").trim() || "Sin título"}</h5>
<p className="m-0 text-truncate">{trimContent(paste.content, 100)}</p>
<small className="custom-text-muted">
{new Date(paste.createdAt).toLocaleString()}
</small>
</div>
);
};
PublicPasteItem.propTypes = {
paste: PropTypes.shape({
title: PropTypes.string.isRequired,
content: PropTypes.string.isRequired,
createdAt: PropTypes.string.isRequired,
}).isRequired,
};
export default PublicPasteItem;