
Security News
Axios Maintainer Confirms Social Engineering Attack Behind npm Compromise
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.
react-seatmap-builder
Advanced tools
A powerful and interactive React component for building venue seat maps with drag-and-drop functionality
A production-ready, professional-grade seat map builder for creating interactive venue layouts for cinemas, theaters, concerts, and stadiums. Built with React, Konva, and Tailwind CSS.
# Clone the repository
git clone <repository-url>
cd my-seatmap-app
# Install dependencies
npm install
# Start development server
npm run dev
# Build for production
npm run build
src/
├── components/ # React components
│ ├── elements/ # Seat, Section, Text elements
│ ├── SeatMapBuilder.jsx # Main container component
│ ├── StageCanvas.jsx # Konva canvas component (with StageCanvas_fixed.jsx variant)
│ ├── Toolbar.jsx # Tool selection sidebar
│ ├── TopBar.jsx # Command bar with file operations
│ ├── Sidebar.jsx # Properties panel
│ ├── ContextMenu.jsx # Right-click context menu
│ ├── RowGenerator.jsx # Advanced row creation tool
│ ├── BulkEditor.jsx # Multi-element editor
│ ├── MeasurementTool.jsx # Distance measurement tool
│ ├── KeyboardShortcuts.jsx # Keyboard event handler
│ └── HelpModal.jsx # Documentation and help
├── hooks/ # Custom React hooks
│ └── useSeatMapState.js # Main state management
├── utils/ # Utility functions
│ ├── constants.js # Tool types, colors, settings
│ ├── helpers.js # Utility functions
│ └── templates.js # Venue templates
└── main.tsx # App entry point
Ctrl/Cmd + S - Save projectCtrl/Cmd + O - Open projectCtrl/Cmd + Z - UndoCtrl/Cmd + Y - Redo? - Show helpEscape - Deselect allCtrl/Cmd + A - Select allCtrl/Cmd + C - CopyCtrl/Cmd + V - PasteCtrl/Cmd + X - CutCtrl/Cmd + D - DuplicateDelete - Delete selectedArrow Keys - Nudge selected (1px)Shift + Arrow Keys - Nudge selected (10px)V - Select toolR - Add seat toolL - Add row toolN - Add section toolT - Add text toolH - Add shape toolM - Measurement toolCtrl/Cmd + + - Zoom inCtrl/Cmd + - - Zoom outCtrl/Cmd + 0 - Reset zoomG - Toggle gridS - Toggle snap1 - Normal seat2 - VIP seat3 - Accessible seat4 - Companion seat5 - Blocked seat6 - Standing area// Load cinema template
seatMapState.loadTemplate('cinema');
// Or create custom curved rows
const rowConfig = {
startRow: 'A',
endRow: 'J',
seatsPerRow: 20,
curved: true,
curvature: 0.3,
centerX: 400,
centerY: 300
};
// Select multiple seats
seatMapState.selectElements(seatIds);
// Update all selected seats
seatMapState.updateElements([
{ id: 'seat1', seatType: 'vip', pricing: '$25' },
{ id: 'seat2', seatType: 'vip', pricing: '$25' }
]);
// Export complete venue data
const venueData = seatMapState.exportData();
// Structure:
{
sections: [
{
id: "section1",
name: "VIP Section",
seats: [
{
id: "seat1",
row: "A",
number: 1,
x: 100,
y: 200,
type: "vip",
pricing: "$50"
}
]
}
],
metadata: {
createdAt: "2024-01-01T00:00:00Z",
totalSeats: 200,
venueType: "cinema"
}
}
The application uses a custom hook useSeatMapState that provides:
Built on Konva for high-performance 2D graphics:
// In constants.js
export const SEAT_TYPES = {
NORMAL: 'normal',
VIP: 'vip',
PREMIUM: 'premium', // Add new type
// ...
};
export const SEAT_COLORS = {
premium: '#FFD700', // Define color
// ...
};
// In templates.js
export const VENUE_TEMPLATES = {
myVenue: {
name: 'My Custom Venue',
description: 'Custom venue layout',
data: {
elements: [...],
sections: [...],
settings: {...}
}
}
};
Canvas not rendering
Performance issues with large venues
Export not working
git checkout -b feature/amazing-feature)git commit -m 'Add amazing feature')git push origin feature/amazing-feature)This project is licensed under the MIT License - see the LICENSE file for details.
Built for production use - This seat map builder is designed to handle real-world venue requirements with professional-grade features and performance.
FAQs
A powerful and interactive React component for building venue seat maps with drag-and-drop functionality
We found that react-seatmap-builder demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.

Security News
The Axios compromise shows how time-dependent dependency resolution makes exposure harder to detect and contain.