launcher: better empty text
This commit is contained in:
parent
b5648cf986
commit
9c8d9aa975
2 changed files with 24 additions and 3 deletions
|
|
@ -1,4 +1,4 @@
|
|||
import { bind, execAsync, Gio, register, timeout, Variable } from "astal";
|
||||
import { bind, execAsync, Gio, GLib, register, timeout, Variable } from "astal";
|
||||
import { Astal, Gtk, Widget } from "astal/gtk3";
|
||||
import fuzzysort from "fuzzysort";
|
||||
import type AstalApps from "gi://AstalApps";
|
||||
|
|
@ -45,6 +45,17 @@ const getIconFromMode = (mode: Mode) => {
|
|||
}
|
||||
};
|
||||
|
||||
const getEmptyTextFromMode = (mode: Mode) => {
|
||||
switch (mode) {
|
||||
case "apps":
|
||||
return "No apps found";
|
||||
case "files":
|
||||
return GLib.find_program_in_path("fd") === null ? "File search requires `fd`" : "No files found";
|
||||
case "math":
|
||||
return "Type an expression";
|
||||
}
|
||||
};
|
||||
|
||||
const launchAndClose = (self: JSX.Element, astalApp: AstalApps.Application) => {
|
||||
const toplevel = self.get_toplevel();
|
||||
if (toplevel instanceof Widget.Window) toplevel.hide();
|
||||
|
|
@ -196,8 +207,12 @@ const Results = ({ entry, mode }: { entry: Widget.Entry; mode: Variable<Mode> })
|
|||
shown={bind(empty).as(t => (t ? "empty" : "list"))}
|
||||
>
|
||||
<box name="empty" className="empty" halign={Gtk.Align.CENTER} valign={Gtk.Align.CENTER}>
|
||||
<label className="icon" label="apps_outage" />
|
||||
<label label="No results" />
|
||||
<label className="icon" label="bug_report" />
|
||||
<label
|
||||
label={bind(entry, "text").as(t =>
|
||||
t.startsWith(">") ? "No matching subcommands" : getEmptyTextFromMode(mode.get())
|
||||
)}
|
||||
/>
|
||||
</box>
|
||||
<box
|
||||
vertical
|
||||
|
|
|
|||
|
|
@ -81,8 +81,14 @@
|
|||
|
||||
.empty {
|
||||
color: scheme.$subtext0;
|
||||
font-size: lib.s(18);
|
||||
padding: lib.s(10) 0;
|
||||
|
||||
@include lib.spacing;
|
||||
|
||||
.icon {
|
||||
color: scheme.$subtext0;
|
||||
}
|
||||
}
|
||||
|
||||
.result {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue