27 lines
		
	
	
		
			645 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			27 lines
		
	
	
		
			645 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
import { GLib, Variable } from "astal";
 | 
						|
import { Gtk } from "astal/gtk4";
 | 
						|
 | 
						|
const Time = ({ format = "%a, %e.%m %H:%M:%S" }) => {
 | 
						|
    const time = Variable<string>("").poll(
 | 
						|
        1000,
 | 
						|
        () => GLib.DateTime.new_now_local().format(format)!,
 | 
						|
    );
 | 
						|
 | 
						|
    return (
 | 
						|
        <menubutton
 | 
						|
            cssClasses={["time", "bar-button"]}
 | 
						|
            hexpand
 | 
						|
            halign={Gtk.Align.CENTER}
 | 
						|
        >
 | 
						|
            <label onDestroy={() => time.drop()} label={time()} halign={Gtk.Align.CENTER}></label>
 | 
						|
            <popover>
 | 
						|
                <Gtk.Calendar />
 | 
						|
            </popover>
 | 
						|
        </menubutton>
 | 
						|
    );
 | 
						|
};
 | 
						|
 | 
						|
export default {
 | 
						|
    Time,
 | 
						|
};
 |