28 lines
1.2 KiB
TypeScript
28 lines
1.2 KiB
TypeScript
import React from 'react';
|
|
import { renderToString } from 'react-dom/server';
|
|
import { DealPipelineApp } from './components.js';
|
|
|
|
export default function (): string {
|
|
const html = renderToString(<DealPipelineApp />);
|
|
return `<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>Deal Pipeline - ActiveCampaign</title>
|
|
<style>
|
|
* { margin: 0; padding: 0; box-sizing: border-box; }
|
|
body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; background: #f5f5f5; }
|
|
.app { padding: 20px; }
|
|
.header { background: #7c3aed; color: white; padding: 20px; border-radius: 8px; margin-bottom: 20px; }
|
|
.pipeline { display: flex; gap: 15px; overflow-x: auto; padding: 10px 0; }
|
|
.stage { background: #e5e7eb; min-width: 300px; border-radius: 8px; padding: 15px; }
|
|
.stage-header { font-weight: bold; margin-bottom: 10px; display: flex; justify-content: space-between; }
|
|
.deal-card { background: white; padding: 15px; border-radius: 6px; margin-bottom: 10px; cursor: pointer; border-left: 4px solid #7c3aed; }
|
|
.deal-value { color: #10b981; font-weight: bold; margin-top: 5px; }
|
|
</style>
|
|
</head>
|
|
<body>${html}</body>
|
|
</html>`;
|
|
}
|