Notification Widget =================== Il widget ``CardContent`` è progettato per mostrare contenuti in una card personalizzabile. Accetta come parametro un oggetto `CardViewModel <../viewmodel/card-viewmodel.html>`__ che consente di configurare diversi aspetti del layout, del contenuto e del comportamento della card. Costruttore ----------- Il costruttore di ``CardContent`` è definito come segue: .. code-block:: dart CardContent({ required CardViewModel cardViewModel, }); Parametri: - **cardViewModel**: un'istanza di `CardViewModel <../viewmodel/card-viewmodel.html>`__ che specifica le configurazioni della card, tra cui il contenuto principale, l'intestazione, la sezione inferiore e l'overlay. Questa tipologia è simile alla `Card Extended <../card-extended/card-extended.html>`__, la differenza è nell'utilizzo in maniera diversa delle varie configurazioni disponibili. Varianti di utilizzo -------------------- **Variante 1** Questa variante mostra una card di notifica con un bottone. .. image:: img/notification1.png :width: 400px :align: center .. code-block:: dart CardViewModel( config: CardConfig(layoutBuilder: EvaCardExtendedLayoutBuilder(leftContentPadding: 10), onTap: (CardViewModel item) {}), contentConfig: CardContentConfig( customWidget: buildDatesNotification( colorScheme: colorScheme, overlayItemWidget: buildOverlayItem( colorScheme, OverlayItemConfig( isChecked: true, orientation: EvaCardOverlayItemContentDoubleOrientation.horizontal, overlayItemSize: OverlayItemSize.normal, startDate: DateTime(2024, 2, 3), endDate: DateTime(2024, 2, 5), )), title: IconTextViewModel(text: "Buone Notizie!"), description1: IconTextViewModel(text: "Pierpaolo"), description2: IconTextViewModel(text: " ha accettato la tua richiesta"))), bottomConfig: CardBottomConfig(buttons: CardBottomButtons(buttons: [ButtonViewModel(label: 'Ok Grazie', type: ButtonType.standard, action: () {})])), ) **Variante 2** Questa variante mostra una card di notifica con due bottoni. .. image:: img/notification2.png :width: 400px :align: center .. code-block:: dart CardContent( cardViewModel: CardViewModel( config: CardConfig(layoutBuilder: EvaCardExtendedLayoutBuilder(leftContentPadding: 10), onTap: (CardViewModel item) {}), contentConfig: CardContentConfig( customWidget: buildDatesNotification( colorScheme: colorScheme, overlayItemWidget: buildOverlayItem( colorScheme, OverlayItemConfig( isChecked: false, orientation: EvaCardOverlayItemContentDoubleOrientation.horizontal, overlayItemSize: OverlayItemSize.normal, startDate: DateTime(2024, 2, 3), endDate: DateTime(2024, 2, 5), )), title: IconTextViewModel(text: "Buone Notizie!"), description1: IconTextViewModel(text: "Pierpaolo"), description2: IconTextViewModel(text: " ha accettato la tua richiesta"))), bottomConfig: CardBottomConfig( buttons: CardBottomButtons(buttons: [ ButtonViewModel(label: 'Dettaglio', type: ButtonType.outlined, action: () {}), ButtonViewModel(label: 'Ok Grazie', type: ButtonType.standard, action: () {}) ])), ), ) **Variante 3** Questa variante mostra una card di notifica con tre bottoni. .. image:: img/notification3.png :width: 400px :align: center .. code-block:: dart CardContent( cardViewModel: CardViewModel( config: CardConfig(layoutBuilder: EvaCardExtendedLayoutBuilder(leftContentPadding: 10), onTap: (CardViewModel item) {}), contentConfig: CardContentConfig( customWidget: buildDatesNotification( colorScheme: colorScheme, overlayItemWidget: buildOverlayItem( colorScheme, OverlayItemConfig( isChecked: true, orientation: EvaCardOverlayItemContentDoubleOrientation.horizontal, overlayItemSize: OverlayItemSize.normal, startDate: DateTime(2024, 2, 3), endDate: DateTime(2024, 2, 5), )), title: IconTextViewModel(text: "Buone Notizie!"), description1: IconTextViewModel(text: "Pierpaolo"), description2: IconTextViewModel(text: " ha accettato la tua richiesta"))), bottomConfig: CardBottomConfig( buttons: CardBottomButtons(buttons: [ ButtonViewModel(label: 'Dettaglio', type: ButtonType.outlined, action: () {}), ButtonViewModel(label: 'Messaggia', type: ButtonType.outlined, action: () {}), ButtonViewModel(label: 'Ok Grazie', type: ButtonType.standard, action: () {}) ])), ), ) **Variante 4** Questa variante mostra una card di notifica con sfondo senza overlay e senza bottoni. .. image:: img/notification4.png :width: 400px :align: center .. code-block:: dart CardContent( cardViewModel: CardViewModel( config: CardConfig( backgroundColor: Colors.green.shade50, layoutBuilder: EvaCardExtendedLayoutBuilder(leftContentPadding: 10), onTap: (CardViewModel item) {}), contentConfig: CardContentConfig( customWidget: buildDatesNotification( colorScheme: colorScheme, isContentCentered: true, title: IconTextViewModel(text: "Buone Notizie!"), description1: IconTextViewModel(text: "Pierpaolo"), description2: IconTextViewModel(text: " ha accettato la tua richiesta"))), ), ) **Variante 5** Questa variante mostra una card di notifica con tre bottoni, il layout è relativo ad un viaggio. .. image:: img/notification5.png :width: 400px :align: center .. code-block:: dart CardContent( cardViewModel: CardViewModel( config: CardConfig( backgroundColor: Colors.green.shade50, layoutBuilder: EvaCardExtendedLayoutBuilder(leftContentPadding: 10), onTap: (CardViewModel item) {}), contentConfig: CardContentConfig( customWidget: buildTravelNotification( colorScheme: colorScheme, title: IconTextViewModel(text: "Buone Notizie!"), description1: IconTextViewModel(text: "Francesca"), description2: IconTextViewModel(text: " vuole aggiungersi al tuo viaggio"), from: IconTextViewModel(text: "Fiumicino RM"), to: IconTextViewModel(text: "Roma RM"), date: IconTextViewModel(text: "Mer 5 ottobre"), )), bottomConfig: CardBottomConfig( buttons: CardBottomButtons(buttons: [ ButtonViewModel(label: 'Rifiuta', type: ButtonType.outlined, action: () {}), ButtonViewModel(label: 'Approva', type: ButtonType.standard, action: () {}), ButtonViewModel(label: 'Dettagli', type: ButtonType.standard, action: () {}) ])), ), )