         height += size.height + infoConfig.verticalPadding
       }
 
-      if let textNode = textNode {
-        let size = textNode.measure(CGSize(
-          width: width,
-          height: CGFloat(FLT_MAX)))
-        height += size.height + infoConfig.verticalPadding
+      var rowHeight = textRowHeight()
+
+      if rowHeight > 0 {
+        height += rowHeight + infoConfig.verticalPadding
       }
 
       if let divider = divider {

          string: title,
          attributes: infoConfig.title.textAttributes)
        addSubnode(titleNode)
      }

      if let text = post.text {

        y += size.height + padding
      }

      let rowHeight = textRowHeight()
      if rowHeight > 0 {
        if let textNode = textNode {
          let size = textNode.calculatedSize
          var rowX = (width - size.width) / CGFloat(2)

          if let iconNode = iconNode {
            let iconWidth = infoConfig.text.icon.padding
              + infoConfig.text.icon.size.width
            rowX -= iconWidth / CGFloat(2)

            let size = infoConfig.text.icon.size
            iconNode.frame = CGRect(
              x: rowX,
              y: y + (rowHeight - size.height) / CGFloat(2),
              width: size.width,
              height: size.height)

            rowX += iconWidth
          }

          textNode.frame = CGRect(
            x: rowX,
            y: y + (rowHeight - size.height) / CGFloat(2),
            width: size.width,
            height: size.height)

          y += rowHeight + padding
        }
      }

      if let divider = divider {
