chore: Remove comments
This commit is contained in:
@@ -27,8 +27,7 @@ export function ActivityFeed({typeFilter, dateRangeDays = 30, contactId}: Activi
|
||||
return date.toISOString();
|
||||
}, [dateRangeDays]);
|
||||
|
||||
// Fetch activities
|
||||
const fetchActivities = useCallback(
|
||||
const fetchActivities = useCallback(
|
||||
async (cursor?: string) => {
|
||||
try {
|
||||
if (cursor) {
|
||||
|
||||
@@ -50,8 +50,7 @@ export function useAnalytics(options: UseAnalyticsOptions = {}): AnalyticsData {
|
||||
}, [days, options.startDate, options.endDate]);
|
||||
/* eslint-enable react-hooks/purity */
|
||||
|
||||
// Fetch activity stats
|
||||
const {
|
||||
const {
|
||||
data: stats,
|
||||
error: statsError,
|
||||
isLoading: statsLoading,
|
||||
@@ -61,8 +60,7 @@ export function useAnalytics(options: UseAnalyticsOptions = {}): AnalyticsData {
|
||||
dedupingInterval: 10000, // Prevent duplicate requests within 10 seconds
|
||||
});
|
||||
|
||||
// Fetch time series data (if endpoint exists)
|
||||
const {
|
||||
const {
|
||||
data: timeSeries,
|
||||
error: timeSeriesError,
|
||||
isLoading: timeSeriesLoading,
|
||||
|
||||
@@ -46,8 +46,7 @@ export function useContactFields() {
|
||||
},
|
||||
);
|
||||
|
||||
// Extract just the field names as strings
|
||||
const fieldNames = (data?.fields || []).map(f => f.field);
|
||||
const fieldNames = (data?.fields || []).map(f => f.field);
|
||||
|
||||
return {
|
||||
fields: fieldNames,
|
||||
|
||||
@@ -72,8 +72,7 @@ export default function AnalyticsPage() {
|
||||
return {startDate: start.toISOString(), endDate: end.toISOString()};
|
||||
}, [days]);
|
||||
|
||||
// Fetch campaign stats from API
|
||||
const {data: campaignStats} = useSWR<{
|
||||
const {data: campaignStats} = useSWR<{
|
||||
total: number;
|
||||
active: number;
|
||||
completed: number;
|
||||
@@ -85,8 +84,7 @@ export default function AnalyticsPage() {
|
||||
dedupingInterval: 10000,
|
||||
});
|
||||
|
||||
// Fetch top events from API
|
||||
const {data: topEvents} = useSWR<
|
||||
const {data: topEvents} = useSWR<
|
||||
{
|
||||
name: string;
|
||||
count: number;
|
||||
@@ -98,8 +96,7 @@ export default function AnalyticsPage() {
|
||||
dedupingInterval: 10000,
|
||||
});
|
||||
|
||||
// Fetch top campaigns from API
|
||||
const {data: topCampaigns} = useSWR<
|
||||
const {data: topCampaigns} = useSWR<
|
||||
{
|
||||
id: string;
|
||||
subject: string;
|
||||
@@ -115,8 +112,7 @@ export default function AnalyticsPage() {
|
||||
dedupingInterval: 10000,
|
||||
});
|
||||
|
||||
// Process time series data for charts
|
||||
const chartData = useMemo(() => {
|
||||
const chartData = useMemo(() => {
|
||||
if (timeSeries && timeSeries.length > 0) {
|
||||
return timeSeries.map(point => ({
|
||||
date: new Date(point.date).toLocaleDateString('en-US', {month: 'short', day: 'numeric'}),
|
||||
@@ -131,13 +127,11 @@ export default function AnalyticsPage() {
|
||||
return [];
|
||||
}, [timeSeries]);
|
||||
|
||||
// Check if we have any real data
|
||||
const hasData = useMemo(() => {
|
||||
const hasData = useMemo(() => {
|
||||
return chartData.some(point => point.emails > 0 || point.opens > 0 || point.clicks > 0);
|
||||
}, [chartData]);
|
||||
|
||||
// Calculate cumulative totals
|
||||
const cumulativeTotals = useMemo(() => {
|
||||
const cumulativeTotals = useMemo(() => {
|
||||
return chartData.reduce(
|
||||
(acc, day) => ({
|
||||
emails: acc.emails + (day.emails || 0),
|
||||
|
||||
@@ -67,8 +67,7 @@ export default function ContactsPage() {
|
||||
{revalidateOnFocus: false},
|
||||
);
|
||||
|
||||
// Update contacts when data changes
|
||||
useEffect(() => {
|
||||
useEffect(() => {
|
||||
if (data) {
|
||||
setContacts(data.data);
|
||||
if (!cursor) {
|
||||
|
||||
@@ -33,8 +33,7 @@ export default function Manage() {
|
||||
const data = await network.fetch<ContactInfo>('GET', `/contacts/public/${id}`);
|
||||
setContact(data);
|
||||
|
||||
// Load translations for the project's language
|
||||
const t = await createTranslator(data.language || 'en');
|
||||
const t = await createTranslator(data.language || 'en');
|
||||
setTranslator(t);
|
||||
|
||||
setError(null);
|
||||
|
||||
@@ -57,8 +57,7 @@ export default function SegmentDetailPage() {
|
||||
const [isComputing, setIsComputing] = useState(false);
|
||||
const [showDeleteDialog, setShowDeleteDialog] = useState(false);
|
||||
|
||||
// Initialize form when segment loads
|
||||
useEffect(() => {
|
||||
useEffect(() => {
|
||||
if (segment) {
|
||||
setName(segment.name);
|
||||
setDescription(segment.description || '');
|
||||
|
||||
@@ -1556,8 +1556,7 @@ function EditStepDialog({step, workflowId, open, onOpenChange, onSuccess}: EditS
|
||||
const [name, setName] = useState(step.name);
|
||||
const [isSubmitting, setIsSubmitting] = useState(false);
|
||||
|
||||
// Get icon and colors for this step type
|
||||
const Icon = STEP_TYPE_ICONS[step.type as keyof typeof STEP_TYPE_ICONS] || GitBranch;
|
||||
const Icon = STEP_TYPE_ICONS[step.type as keyof typeof STEP_TYPE_ICONS] || GitBranch;
|
||||
const color = STEP_TYPE_COLORS[step.type as keyof typeof STEP_TYPE_COLORS] || '#6b7280';
|
||||
const bgColor = STEP_TYPE_BG[step.type as keyof typeof STEP_TYPE_BG] || '#f3f4f6';
|
||||
|
||||
|
||||
Reference in New Issue
Block a user