// Current conditions, at the foot of the date menu — GNOME's weather section.
//
// The whole card disappears when services/Weather.qml has nothing: a weather
// widget that cannot reach the network must go quiet, not show an error. The
// caller collapses the separator above it off the same `Weather.available`.

import QtQuick
import qs.config
import qs.services

Rectangle {
    id: root

    implicitHeight: 62
    radius: Theme.cardRadius
    // Cards inside an already-glass panel do not get a prism edge — the edge
    // marks a pane of glass, not every item sitting on one.
    border.width: 0
    color: Theme.alpha(Theme.fg, 0.06)

    Text {
        id: glyph
        anchors.left: parent.left
        anchors.leftMargin: 16
        anchors.verticalCenter: parent.verticalCenter
        text: Weather.icon
        // fontMono is the Nerd Font, used here purely to draw an icon.
        font.family: Theme.fontMono
        font.pixelSize: 26
        color: Theme.accentAlt
    }

    Column {
        anchors.left: glyph.right
        anchors.leftMargin: 14
        anchors.right: parent.right
        anchors.rightMargin: 16
        anchors.verticalCenter: parent.verticalCenter
        spacing: 2

        Text {
            width: parent.width
            text: Math.round(Weather.temperature) + Weather.unitSuffix
            color: Theme.fg
            elide: Text.ElideRight
            font.family: Theme.fontFamily
            // The temperature changes in place on every refresh.
            font.features: Theme.tabularFigures
            font.pixelSize: Theme.fontSizeLarge
            font.weight: Font.DemiBold
        }

        Text {
            width: parent.width
            // Description is empty for weather codes we don't have a label for,
            // in which case the row is just the location.
            text: Weather.description === "" ? Settings.weatherLocation : Weather.description + " · " + Settings.weatherLocation
            color: Theme.fgDim
            elide: Text.ElideRight
            font.family: Theme.fontFamily
            font.features: Theme.tabularFigures
            font.pixelSize: Theme.fontSizeSmall
        }
    }
}
