import { networkService } from 'src/lib/constants/services.js'; import options from 'src/options'; import { openMenu } from '../../utils/menu'; import { runAsyncCommand, throttledScrollHandler } from 'src/components/bar/utils/helpers.js'; import { bind, Variable } from 'astal'; import { onPrimaryClick, onSecondaryClick, onMiddleClick, onScroll } from 'src/lib/shared/eventHandlers'; import { Astal, Gtk } from 'astal/gtk3'; import AstalNetwork from 'gi://AstalNetwork?version=0.1'; import { BarBoxChild } from 'src/lib/types/bar.js'; import { formatWifiInfo, wiredIcon, wirelessIcon } from './helpers'; const { label, truncation, truncation_size, rightClick, middleClick, scrollDown, scrollUp, showWifiInfo } = options.bar.network; const Network = (): BarBoxChild => { const iconBinding = Variable.derive( [bind(networkService, 'primary'), bind(wiredIcon), bind(wirelessIcon)], (primaryNetwork, wiredIcon, wifiIcon) => { const isWired = primaryNetwork === AstalNetwork.Primary.WIRED; const iconName = isWired ? wiredIcon : wifiIcon; return iconName; }, ); const networkIcon = ; const networkLabel = Variable.derive( [ bind(networkService, 'primary'), bind(networkService, 'wifi'), bind(label), bind(truncation), bind(truncation_size), bind(showWifiInfo), ], (primaryNetwork, networkWifi, showLabel, trunc, tSize, showWifiInfo) => { if (!showLabel) { return ; } if (primaryNetwork === AstalNetwork.Primary.WIRED) { return