Enode — API Reference
    Preparing search index...
    interface NotificationCardRowProps {
        expanded: boolean;
        expired?: boolean;
        expiryLabel?: string;
        fullStamp: string;
        notification: Notification;
        onActivate: (notification: Notification) => void;
        onDelete: (notification: Notification) => void;
        onSwipeOpenChange?: (open: boolean) => void;
        onToggle: (notification: Notification) => void;
        selectable?: boolean;
        selected?: boolean;
        stamp: string;
        swipeOpen?: boolean;
        unread: boolean;
    }
    Index

    Properties

    expanded: boolean

    Whether the detail + row actions are revealed.

    expired?: boolean

    Whether expiryLabel is the expired state — suppresses the CTA.

    expiryLabel?: string

    Pre-formatted expiry sub-label for an export-download link (e.g. "Expires in 12m" or "Link expired"); omitted for notifications without an expiring link. The container owns the clock + translation.

    fullStamp: string

    Full, unabbreviated date + time, shown once the row is open.

    notification: Notification
    onActivate: (notification: Notification) => void

    Run the notification's action (the CTA pill). Only rendered when the notification actually has one — see actionLabel.

    onDelete: (notification: Notification) => void

    Delete this notification — the swipe gesture's action.

    onSwipeOpenChange?: (open: boolean) => void
    onToggle: (notification: Notification) => void

    Toggle the row open/shut. The host decides what expanding also implies.

    selectable?: boolean

    Selection mode: a tap picks the row instead of opening it.

    selected?: boolean
    stamp: string

    Pre-formatted stamp for this row (a time today, a short date before that).

    swipeOpen?: boolean

    Whether this row's swipe panel is revealed (the list allows only one).

    unread: boolean

    Whether this notification is unread (the backend has no per-item readAt).