mirror of
https://github.com/mrusme/neonmodem.git
synced 2024-12-04 14:46:37 -05:00
121 lines
19 KiB
Go
121 lines
19 KiB
Go
package header
|
||
|
||
import (
|
||
"fmt"
|
||
|
||
"github.com/mrusme/neonmodem/ui/ctx"
|
||
|
||
"github.com/charmbracelet/bubbles/spinner"
|
||
tea "github.com/charmbracelet/bubbletea"
|
||
"github.com/charmbracelet/lipgloss"
|
||
)
|
||
|
||
var (
|
||
highlight = lipgloss.AdaptiveColor{Light: "#874BFD", Dark: "#7D56F4"}
|
||
|
||
banner = `[0m[38;2;0;0;0m█[38;2;21;28;38;48;2;0;0;0m▗[38;2;0;0;0;48;2;53;75;113m▀[48;2;57;81;124m▀[38;2;48;68;100;48;2;5;7;10m▖[0m[38;2;0;0;0m██[48;2;45;63;94m▀[48;2;46;64;94m▀[48;2;58;82;125m▀[38;2;46;64;92;48;2;0;0;0m▖[38;2;7;9;12m▗[38;2;0;0;0;48;2;41;58;83m▀[48;2;57;81;124m▀[48;2;59;83;127m▀▀▀▀[38;2;33;47;66;48;2;0;0;0m▖[38;2;13;18;23m▗[38;2;0;0;0;48;2;45;64;93m▀[48;2;58;83;126m▀[48;2;59;83;127m▀▀[48;2;52;74;110m▀[38;2;32;45;62;48;2;1;2;3m▖[0m[38;2;0;0;0m█[38;2;44;63;89;48;2;2;3;5m▗[38;2;0;0;0;48;2;58;82;124m▀[48;2;55;79;119m▀[38;2;31;43;59;48;2;0;0;0m▖[0m[38;2;0;0;0m█[38;2;16;22;31;48;2;0;0;0m▗[38;2;0;0;0;48;2;60;84;127m▀[48;2;41;57;82m▀[48;2;59;83;125m▀[38;2;10;14;19;48;2;0;0;0m▖[0m[38;2;0;0;0m█[38;2;8;10;14;48;2;0;0;0m▗[38;2;0;0;0;48;2;60;85;127m▀[48;2;60;85;129m▀[48;2;56;80;120m▀[38;2;34;47;65;48;2;0;1;1m▖[0m[38;2;0;0;0m█[38;2;43;62;87;48;2;3;4;5m▗[38;2;0;0;0;48;2;58;83;125m▀[48;2;60;85;129m▀[48;2;54;76;112m▀[38;2;0;1;1;48;2;0;0;0m▖[38;2;34;48;65;48;2;2;2;3m▗[38;2;0;0;0;48;2;53;76;112m▀[48;2;60;85;129m▀[48;2;60;86;129m▀[48;2;60;85;127m▀[48;2;45;65;93m▀[38;2;12;16;21;48;2;0;0;0m▖[38;2;30;42;58m▗[38;2;0;0;0;48;2;60;86;129m▀▀▀▀[48;2;59;84;126m▀[48;2;41;59;83m▀[38;2;5;7;10;48;2;0;0;0m▖[0m[38;2;0;0;0m█[38;2;29;41;56;48;2;1;1;2m▗[38;2;0;0;0;48;2;52;75;109m▀[48;2;61;87;129m▀[48;2;61;87;130m▀▀▀[48;2;54;76;111m▀[38;2;61;86;125;48;2;2;3;4m▗[38;2;0;0;0;48;2;61;87;130m▀[48;2;61;87;129m▀[48;2;46;66;93m▀[38;2;3;4;6;48;2;0;0;0m▖[38;2;7;10;13m▗[38;2;0;0;0;48;2;50;71;102m▀[48;2;61;87;130m▀▀[38;2;55;77;110;48;2;0;1;1m▖[0m[38;2;0;0;0m█████████████████[0m
|
||
[38;2;0;0;0m█[38;2;131;187;218;48;2;22;27;31m▐[38;2;116;153;170;48;2;119;178;215m▗[38;2;96;138;174;48;2;81;100;110m▀[38;2;112;154;173;48;2;121;182;219m▖[38;2;42;57;69;48;2;139;208;233m▀[38;2;73;94;102;48;2;1;1;1m▖[38;2;126;192;228;48;2;74;94;108m▐[38;2;77;96;110;48;2;128;191;226m▐[38;2;112;165;207;48;2;143;213;239m▀[38;2;0;0;0;48;2;104;140;162m▐[38;2;39;50;59;48;2;127;185;213m▘[38;2;87;106;116;48;2;124;180;217m▗[38;2;84;119;151;48;2;125;181;208m▘[38;2;100;134;165;48;2;128;189;217m▘[38;2;101;134;165m▝[38;2;100;134;165m▘[38;2;101;134;165m▝[38;2;15;18;20;48;2;72;92;105m▐[38;2;63;83;100;48;2;134;198;229m▘[38;2;96;122;134;48;2;118;168;203m▗[38;2;82;116;146;48;2;127;186;213m▘[38;2;101;133;165;48;2;128;189;217m▘[38;2;96;130;161;48;2;143;217;243m▀[38;2;88;106;117;48;2;112;161;193m▗[38;2;105;152;188;48;2;133;199;231m▝[38;2;126;168;186;48;2;11;14;16m▖[38;2;90;123;150;48;2;129;189;219m▘[38;2;73;95;113;48;2;131;188;221m▐[38;2;109;160;201;48;2;88;114;126m▀[38;2;92;131;160;48;2;132;198;230m▝[38;2;14;18;21;48;2;123;176;195m▀[38;2;45;54;59;48;2;17;21;25m▗[38;2;113;167;210;48;2;144;216;242m▀[38;2;76;103;125;48;2;99;132;151m▘[38;2;112;165;206;48;2;144;212;238m▀[38;2;28;33;37;48;2;6;8;10m▖[0m[38;2;0;0;0m█[38;2;22;24;27;48;2;5;6;7m▗[38;2;113;167;209;48;2;145;216;241m▀[38;2;88;120;150;48;2;118;159;183m▝[38;2;71;88;98;48;2;106;149;179m▗[38;2;92;129;157;48;2;133;199;231m▝[38;2;22;28;33;48;2;137;196;218m▀[38;2;107;156;192;48;2;130;191;222m▘[38;2;72;96;114;48;2;124;178;208m▞[38;2;130;186;218;48;2;88;112;132m▐[38;2;92;127;156;48;2;125;183;213m▝[38;2;133;180;200;48;2;14;18;21m▗[38;2;106;154;190;48;2;134;199;231m▘[38;2;83;109;130;48;2;127;183;214m▞[38;2;97;131;162;48;2;143;218;244m▀[38;2;101;135;166;48;2;129;190;218m▘[38;2;82;116;147;48;2;128;186;213m▝[38;2;93;117;128;48;2;119;170;205m▖[38;2;60;80;96;48;2;133;197;227m▝[38;2;64;81;92;48;2;12;13;14m▐[38;2;101;134;165;48;2;129;190;218m▝[48;2;129;191;218m▝[48;2;129;190;218m▘[38;2;101;135;166;48;2;129;191;218m▝[38;2;87;123;155;48;2;125;181;207m▝[38;2;84;100;111;48;2;124;181;218m▖[38;2;36;46;54;48;2;127;184;210m▝[38;2;109;144;159;48;2;9;11;13m▗[38;2;101;145;177;48;2;134;202;233m▘[38;2;94;114;126;48;2;113;162;193m▖[38;2;89;124;154;48;2;130;190;218m▘[38;2;101;135;166;48;2;129;191;218m▝▝▘[38;2;88;115;141;48;2;131;188;209m▀[38;2;131;188;220;48;2;16;18;21m▐[38;2;110;156;194;48;2;129;189;219m▝[38;2;87;119;148;48;2;107;144;165m▘[38;2;66;82;91;48;2;124;182;219m▖[38;2;15;19;22;48;2;125;182;207m▝[38;2;28;36;42;48;2;129;192;219m▘[38;2;60;73;80;48;2;122;176;212m▗[38;2;78;101;120;48;2;110;155;180m▐[38;2;113;166;208;48;2;143;209;233m▀[38;2;5;7;7;48;2;121;166;193m▐[0m[38;2;0;0;0m█████████████████[0m
|
||
[38;2;0;0;0m█[38;2;145;182;192;48;2;30;33;35m▐[38;2;158;204;218;48;2;92;110;115m▀[38;2;161;207;220;48;2;94;111;117m▀[38;2;132;159;169;48;2;100;118;124m▘[38;2;165;220;235;48;2;61;68;70m▀[38;2;164;216;230;48;2;102;127;133m▀[38;2;160;207;221;48;2;102;127;134m▀[38;2;143;180;191;48;2;83;96;101m▀[38;2;175;234;250;48;2;103;126;132m▀[38;2;8;9;10;48;2;116;136;143m▐[38;2;173;228;244;48;2;102;122;128m▀[38;2;147;177;188;48;2;84;95;99m▀[38;2;172;237;254;48;2;102;127;134m▀[38;2;170;201;213;48;2;102;127;133m▀[38;2;163;192;203;48;2;103;127;133m▀[38;2;164;192;203m▀[38;2;111;120;126;48;2;35;38;40m▘[38;2;65;73;77;48;2;20;22;23m▝[38;2;175;237;253;48;2;104;127;133m▀[38;2;137;163;173;48;2;78;87;91m▀[38;2;175;233;249;48;2;103;124;130m▀[38;2;70;77;81;48;2;20;21;23m▘[38;2;175;237;254;48;2;89;104;109m▝[38;2;172;237;254;48;2;89;103;108m▘[38;2;171;224;239;48;2;101;120;126m▀[38;2;10;11;11;48;2;137;165;174m▐[38;2;169;220;235;48;2;99;118;124m▀[38;2;182;232;247;48;2;95;107;112m▘[38;2;166;217;231;48;2;103;127;133m▀[38;2;55;59;61;48;2;111;134;141m▗[38;2;174;237;253;48;2;83;97;101m▀[38;2;155;192;204;48;2;103;127;133m▀[38;2;174;236;253m▀[38;2;131;157;166;48;2;75;84;88m▀[38;2;176;233;249;48;2;103;125;131m▀[38;2;35;38;40;48;2;6;7;7m▘[0m[38;2;0;0;0m█[38;2;29;29;30;48;2;9;9;10m▗[38;2;177;236;252;48;2;205;242;252m▀[38;2;172;190;197;48;2;158;184;193m▖[38;2;143;170;180;48;2;193;241;253m▝[38;2;166;203;213;48;2;102;114;120m▞[38;2;192;222;231;48;2;183;238;252m▗[38;2;80;86;89;48;2;180;217;228m▞[38;2;170;215;228;48;2;192;241;253m▘[38;2;191;230;242;48;2;115;124;129m▐[38;2;149;182;193;48;2;181;222;233m▝[38;2;190;225;237;48;2;6;6;7m▐[38;2;175;217;230;48;2;190;234;245m▝[38;2;188;240;253;48;2;129;145;151m▐[38;2;89;95;100;48;2;190;240;253m▐[38;2;67;73;77;48;2;22;23;24m▝[38;2;178;236;252;48;2;207;241;251m▀[38;2;181;203;210;48;2;152;177;186m▖[38;2;176;237;253;48;2;205;242;252m▀[38;2;108;115;119;48;2;56;59;62m▗[38;2;165;192;203;48;2;192;226;236m▘[38;2;114;122;128;48;2;164;184;192m▘[38;2;145;161;169;48;2;180;208;218m▝[38;2;108;123;130;48;2;42;44;46m▝[38;2;174;237;253;48;2;205;243;253m▀[38;2;182;214;225;48;2;119;133;139m▐[38;2;177;231;246;48;2;204;237;246m▀[38;2;172;199;209;48;2;13;14;14m▐[38;2;180;234;250;48;2;206;240;249m▀[38;2;169;213;225;48;2;77;81;84m▐[38;2;162;189;198;48;2;172;216;229m▖[38;2;162;190;198;48;2;164;191;201m▖[38;2;162;189;198m▗[38;2;114;124;129;48;2;163;191;200m▐[38;2;48;51;54;48;2;11;12;13m▘[38;2;195;235;248;48;2;24;24;25m▐[38;2;162;198;210;48;2;186;228;239m▝[38;2;137;161;171;48;2;176;215;226m▘[38;2;86;99;104;48;2;175;204;213m▝[38;2;101;108;112;48;2;184;235;249m▖[38;2;86;90;94;48;2;181;229;242m▗[38;2;75;83;88;48;2;186;219;230m▘[38;2;97;103;109;48;2;189;239;252m▐[38;2;176;219;232;48;2;192;233;245m▘[38;2;9;9;9;48;2;180;209;220m▐[38;2;2;0;1;48;2;0;0;0m▗[38;2;6;0;3;48;2;1;0;0m▗[38;2;0;0;0;48;2;9;0;5m▀[48;2;8;0;5m▀[38;2;12;1;7;48;2;3;0;1m▗[38;2;0;0;0;48;2;18;1;11m▀[38;2;1;0;0;48;2;23;2;14m▀[38;2;1;0;1;48;2;22;2;13m▀[48;2;18;1;10m▀[38;2;10;0;5;48;2;2;0;1m▖[38;2;14;1;8;48;2;3;0;2m▗[38;2;59;5;37;48;2;10;0;6m▗[38;2;51;4;30;48;2;21;1;12m▗[38;2;78;7;48;48;2;26;2;15m▗[38;2;14;1;8;48;2;114;11;73m▀[38;2;130;12;85;48;2;24;2;15m▖[38;2;17;1;10;48;2;4;0;2m▖[0m
|
||
[38;2;0;0;0m█[38;2;194;202;206;48;2;54;40;51m▝[38;2;168;175;178;48;2;81;56;82m▀[38;2;170;178;181;48;2;80;55;83m▀[38;2;192;204;207;48;2;95;66;86m▀[38;2;189;199;202;48;2;82;64;91m▀[38;2;107;110;113;48;2;77;62;83m▝[38;2;190;201;204;48;2;90;60;73m▀[38;2;193;203;206;48;2;93;72;87m▘[38;2;191;201;204;48;2;78;59;89m▀[38;2;9;7;8;48;2;121;104;116m▐[38;2;187;196;199;48;2;82;60;89m▀[38;2;147;151;154;48;2;96;58;79m▀[38;2;193;203;206;48;2;64;52;85m▀[38;2;194;203;206;48;2;120;78;99m▀[48;2;117;77;95m▀[48;2;115;74;93m▀[38;2;98;99;101;48;2;39;22;30m▘[38;2;62;62;64;48;2;26;14;18m▝[38;2;193;203;207;48;2;61;43;77m▀[38;2;136;139;142;48;2;85;46;67m▀[38;2;188;198;201;48;2;57;37;72m▀[38;2;11;11;11;48;2;44;25;35m▀[38;2;193;203;206;48;2;66;49;69m▝[38;2;193;204;207;48;2;72;55;73m▘[38;2;183;192;195;48;2;60;34;68m▀[38;2;178;184;187;48;2;36;21;31m▘[38;2;181;189;192;48;2;59;31;64m▀[38;2;191;199;202;48;2;89;62;80m▘[38;2;193;204;207;48;2;35;19;57m▀[38;2;192;204;207;48;2;73;35;57m▀[38;2;165;171;173;48;2;31;15;54m▀[38;2;174;182;186;48;2;68;46;63m▝[38;2;193;204;207;48;2;53;24;51m▀[38;2;131;134;137;48;2;67;31;53m▀[38;2;190;200;203;48;2;45;20;57m▀[38;2;33;33;33;48;2;9;4;5m▘[0m[38;2;0;0;0m█[38;2;30;29;30;48;2;7;3;4m▝[38;2;233;247;251;48;2;40;18;56m▀[38;2;185;190;194;48;2;85;39;63m▀[38;2;232;248;252;48;2;31;14;53m▀[38;2;201;210;213;48;2;43;21;57m▀[38;2;114;117;120;48;2;76;51;71m▘[38;2;223;235;239;48;2;47;24;59m▀[38;2;232;248;252;48;2;26;11;51m▀[38;2;227;237;242;48;2;92;65;82m▝[38;2;208;219;222;48;2;50;23;55m▀[38;2;223;232;236;48;2;29;14;26m▝[38;2;225;237;241;48;2;53;24;60m▀[38;2;188;198;202;48;2;52;24;52m▀[38;2;234;247;251;48;2;58;40;60m▘[38;2;9;9;9;48;2;43;24;34m▀[38;2;234;246;250;48;2;39;17;56m▀[38;2;183;188;192;48;2;82;38;62m▀[38;2;233;247;251;48;2;35;16;55m▀[38;2;115;116;119;48;2;48;30;37m▝[38;2;233;248;252;48;2;34;15;54m▀[38;2;232;244;248;48;2;88;63;81m▝[38;2;210;221;224;48;2;52;23;58m▀[38;2;82;82;84;48;2;35;18;27m▝[38;2;233;248;252;48;2;30;13;52m▀[38;2;173;178;182;48;2;72;33;57m▀[38;2;230;242;246;48;2;53;25;60m▀[38;2;199;205;209;48;2;35;19;28m▝[38;2;232;245;249;48;2;49;22;60m▀[38;2;230;238;242;48;2;63;45;62m▝[38;2;229;238;242;48;2;50;23;59m▀[48;2;83;40;65m▀[38;2;230;238;242;48;2;84;40;65m▀[38;2;230;237;241;48;2;105;71;90m▘[38;2;2;0;1;48;2;62;21;42m▀[38;2;232;238;245;48;2;58;21;45m▝[38;2;216;225;230;48;2;68;23;64m▀[38;2;199;207;211;48;2;61;25;58m▀[38;2;233;244;250;48;2;62;23;66m▀[38;2;182;178;184;48;2;115;50;96m▘[38;2;207;196;208;48;2;115;44;93m▝[38;2;232;223;238;48;2;154;17;112m▀[38;2;153;56;119;48;2;218;120;184m▞[38;2;225;207;226;48;2;198;21;135m▀[38;2;209;194;209;48;2;112;16;74m▘[38;2;71;7;43;48;2;34;3;20m▗[38;2;39;3;23;48;2;194;19;127m▀[38;2;86;8;54;48;2;200;20;130m▀[38;2;66;6;41;48;2;191;19;124m▀[38;2;67;6;41;48;2;194;19;126m▀[38;2;129;12;83;48;2;217;22;142m▀[38;2;169;17;111;48;2;190;19;123m▝[38;2;93;9;58;48;2;155;15;99m▀[38;2;112;10;71;48;2;188;18;123m▐[38;2;32;3;19;48;2;135;13;87m▀[38;2;103;10;63;48;2;51;4;30m▗[38;2;107;10;68;48;2;219;22;144m▘[38;2;127;13;77;48;2;186;18;120m▖[38;2;207;21;134;48;2;231;23;152m▗[38;2;165;16;106;48;2;204;20;132m▝[38;2;209;21;138;48;2;89;8;56m▖[38;2;10;1;6;48;2;27;2;16m▐[0m
|
||
[38;2;0;0;0m█[38;2;90;90;114;48;2;32;27;26m▐[38;2;63;50;73;48;2;90;105;122m▀[38;2;61;49;74;48;2;90;105;124m▀[38;2;99;116;138;48;2;43;36;43m▖[38;2;61;45;53;48;2;3;2;2m▝[38;2;30;26;44;48;2;69;65;82m▞[38;2;61;48;71;48;2;80;103;135m▀[38;2;67;50;50;48;2;96;116;135m▀[38;2;53;43;76;48;2;81;105;136m▀[38;2;0;0;0;48;2;87;76;81m▐[38;2;36;32;49;48;2;90;83;96m▞[38;2;76;59;74;48;2;81;106;137m▀[38;2;64;52;75;48;2;91;111;129m▀[38;2;59;49;80;48;2;89;107;120m▀▀▀[38;2;61;51;81;48;2;90;108;120m▀[38;2;11;8;8;48;2;76;67;65m▐[38;2;93;105;124;48;2;57;49;69m▗[38;2;82;63;74;48;2;85;110;140m▀[38;2;62;51;76;48;2;89;109;126m▀[38;2;59;49;80;48;2;89;108;120m▀[38;2;59;49;78;48;2;88;107;122m▀[38;2;81;63;71;48;2;91;114;139m▀[38;2;46;38;74;48;2;86;100;122m▀[38;2;89;68;79;48;2;9;7;7m▘[38;2;62;50;77;48;2;94;112;133m▀[38;2;112;127;143;48;2;89;76;81m▖[38;2;41;35;72;48;2;81;107;139m▀[38;2;76;73;68;48;2;23;17;17m▖[38;2;70;56;77;48;2;17;12;13m▝[38;2;91;107;129;48;2;48;43;69m▗[38;2;72;55;66;48;2;83;109;140m▀[38;2;65;49;56;48;2;97;118;138m▀[38;2;57;47;78;48;2;93;109;131m▀[38;2;28;21;21;48;2;1;1;1m▘[0m[38;2;0;0;0m█[38;2;26;24;20;48;2;8;6;5m▗[38;2;52;43;77;48;2;90;114;142m▀[38;2;93;72;81;48;2;111;116;119m▀[38;2;51;42;77;48;2;89;113;142m▀[38;2;72;53;53;48;2;49;43;50m▘[38;2;37;32;71;48;2;97;110;127m▀[38;2;91;79;79;48;2;51;41;47m▐[38;2;39;34;71;48;2;80;107;140m▀[38;2;109;125;142;48;2;87;74;79m▗[38;2;60;49;74;48;2;91;109;129m▀[38;2;86;67;80;48;2;12;11;10m▝[38;2;50;41;76;48;2;88;104;126m▀[38;2;77;60;69;48;2;93;117;142m▀[38;2;59;50;79;48;2;90;110;124m▀[38;2;59;50;80;48;2;91;110;123m▀[38;2;62;51;76;48;2;91;113;130m▀[38;2;79;61;74;48;2;87;113;143m▀[38;2;96;108;126;48;2;55;48;67m▖[38;2;75;66;66;48;2;9;7;6m▐[38;2;45;38;74;48;2;82;110;142m▀[38;2;86;67;77;48;2;98;117;129m▀[38;2;59;50;80;48;2;91;111;123m▀▀[38;2;65;53;75;48;2;94;117;134m▀[38;2;75;58;74;48;2;85;112;143m▀[38;2;93;100;112;48;2;51;42;58m▖[38;2;80;61;68;48;2;7;6;5m▝[38;2;44;37;74;48;2;89;102;121m▀[38;2;85;65;73;48;2;93;118;145m▀[38;2;59;50;79;48;2;90;111;126m▀[38;2;59;50;81;48;2;92;111;124m▀[38;2;64;49;82;48;2;99;105;124m▀[38;2;87;43;89;48;2;142;73;126m▀[38;2;163;27;121;48;2;233;25;155m▘[38;2;190;26;123;48;2;207;37;144m▖[38;2;143;40;109;48;2;216;37;150m▀[38;2;91;45;84;48;2;172;54;139m▀[38;2;111;44;88;48;2;179;57;139m▀[38;2;168;64;139;48;2;222;26;149m▗[38;2;207;29;137;48;2;167;47;128m▐[38;2;186;28;131;48;2;216;29;144m▝[38;2;223;36;156;48;2;173;34;116m▖[38;2;206;29;139;48;2;234;25;155m▀[38;2;178;41;120;48;2;223;24;147m▘[38;2;160;16;103;48;2;115;11;70m▘[38;2;234;23;155;48;2;135;13;84m▐[38;2;178;17;114;48;2;142;14;89m▖[38;2;231;23;152;48;2;164;16;104m▞[38;2;193;19;124;48;2;133;13;81m▐[38;2;209;20;135;48;2;239;24;159m▝[38;2;192;19;123;48;2;229;23;151m▝[38;2;133;13;80;48;2;206;20;134m▘[38;2;113;11;69;48;2;226;23;149m▐[38;2;106;10;64;48;2;206;20;135m▖[38;2;145;14;90;48;2;225;23;148m▘[38;2;103;10;63;48;2;202;20;133m▐[38;2;178;17;115;48;2;96;9;58m▐[38;2;204;20;132;48;2;237;24;157m▝[38;2;162;16;105;48;2;181;18;116m▗[38;2;170;17;110;48;2;99;9;63m▘[38;2;11;1;6;48;2;27;2;16m▐[0m
|
||
[38;2;0;0;0m█[38;2;106;132;140;48;2;7;8;8m▝[38;2;91;113;121;48;2;0;0;0m▀[38;2;92;115;123m▀[38;2;102;129;138;48;2;7;7;6m▘[0m[38;2;0;0;0m██[38;2;64;79;81;48;2;0;0;0m▀[38;2;86;116;130m▀[38;2;72;91;95m▀[38;2;4;4;4m▘[38;2;2;3;2m▝[38;2;60;72;71m▀[38;2;85;114;127m▀[38;2;97;129;145m▀▀[38;2;97;130;145m▀[38;2;98;130;145m▀[38;2;66;74;73m▘[38;2;9;9;8m▝[38;2;68;83;84m▀[38;2;86;117;130m▀[38;2;97;130;145m▀[38;2;91;123;137m▀[38;2;80;102;109m▀[38;2;38;42;40m▘[0m[38;2;0;0;0m█[38;2;97;122;132;48;2;0;0;0m▀[38;2;87;102;104m▀[38;2;98;130;145m▀[38;2;54;59;56m▘[0m[38;2;0;0;0m█[38;2;22;23;21;48;2;0;0;0m▝[38;2;81;105;113m▀[38;2;86;116;130m▀[38;2;76;93;94;48;2;6;6;6m▘[0m[38;2;0;0;0m██[38;2;17;17;15;48;2;0;0;0m▝[38;2;101;130;143m▀[38;2;89;104;105m▀[38;2;101;130;144m▀[38;2;19;19;16m▘[38;2;65;70;65;48;2;8;9;8m▘[38;2;66;73;72;48;2;0;0;0m▝[38;2;98;129;145m▀[38;2;85;99;101m▀[38;2;93;116;126m▀[38;2;1;1;1m▘[38;2;40;45;42m▝[38;2;81;103;110m▀[38;2;92;122;138m▀[38;2;97;129;146m▀[38;2;86;116;130m▀[38;2;67;81;82m▀[38;2;7;8;7m▘[38;2;60;66;63m▝[38;2;98;129;146m▀▀▀[38;2;97;129;146m▀[38;2;85;114;127m▀[38;2;78;95;98;48;2;13;14;14m▘[38;2;2;2;2;48;2;0;0;0m▘[0m[38;2;0;0;0m█[38;2;32;35;32;48;2;0;0;0m▝[38;2;79;99;106m▀[38;2;90;121;137m▀[38;2;98;128;146m▀[38;2;108;119;145;48;2;14;1;8m▀[38;2;46;4;27;48;2;163;55;132m▖[38;2;161;26;106;48;2;238;24;157m▐[38;2;208;37;145;48;2;144;17;91m▐[38;2;187;48;137;48;2;80;7;48m▀[38;2;110;10;68;48;2;223;30;153m▖[38;2;200;60;156;48;2;234;24;155m▘[38;2;149;29;99;48;2;92;9;56m▀[38;2;177;25;116;48;2;209;21;138m▀[38;2;157;15;102;48;2;193;41;137m▗[38;2;189;50;139;48;2;110;10;69m▀[38;2;230;24;152;48;2;141;14;91m▀[38;2;188;21;123;48;2;52;4;31m▀[38;2;198;19;129;48;2;45;4;27m▀[38;2;195;19;127;48;2;89;8;56m▀[38;2;233;24;154;48;2;120;11;78m▀[38;2;156;15;101;48;2;49;4;29m▘[38;2;103;10;65;48;2;38;3;22m▝[38;2;192;19;126;48;2;38;3;24m▀[38;2;88;8;54;48;2;20;1;11m▀[38;2;101;9;64;48;2;40;3;25m▝[38;2;173;17;114;48;2;35;3;22m▘[38;2;60;5;36;48;2;25;2;15m▝[38;2;130;12;84;48;2;12;1;7m▀[38;2;68;6;42;48;2;18;1;10m▘[38;2;51;4;31;48;2;15;1;9m▝[38;2;81;8;52;48;2;20;1;12m▘[38;2;35;3;21;48;2;3;0;2m▀[38;2;19;1;11;48;2;4;0;2m▘[38;2;5;0;3;48;2;0;0;0m▘[0m`
|
||
)
|
||
|
||
type Model struct {
|
||
ctx *ctx.Ctx
|
||
spinner spinner.Model
|
||
}
|
||
|
||
func NewModel(c *ctx.Ctx) Model {
|
||
m := Model{
|
||
ctx: c,
|
||
}
|
||
|
||
m.spinner = spinner.New()
|
||
m.spinner.Spinner = spinner.Dot
|
||
m.spinner.Style = lipgloss.NewStyle().Foreground(lipgloss.Color("205"))
|
||
|
||
return m
|
||
}
|
||
|
||
func (m Model) Init() tea.Cmd {
|
||
return m.spinner.Tick
|
||
}
|
||
|
||
func (m Model) Update(msg tea.Msg) (Model, tea.Cmd) {
|
||
var cmds []tea.Cmd
|
||
|
||
if m.ctx.Loading == true {
|
||
cmds = append(cmds, m.spinner.Tick)
|
||
} else {
|
||
return m, nil
|
||
}
|
||
|
||
switch msg := msg.(type) {
|
||
case spinner.TickMsg:
|
||
var cmd tea.Cmd
|
||
m.spinner, cmd = m.spinner.Update(msg)
|
||
cmds = append(cmds, cmd)
|
||
}
|
||
|
||
return m, tea.Batch(cmds...)
|
||
}
|
||
|
||
func (m Model) View() string {
|
||
var row string
|
||
var spinner string = ""
|
||
|
||
selectorWidth := 40
|
||
selectorTextLen := selectorWidth - 7
|
||
|
||
curSysIdx := m.ctx.GetCurrentSystem()
|
||
var currentSystem string = "All"
|
||
if curSysIdx >= 0 {
|
||
currentSystem = (*m.ctx.Systems[curSysIdx]).Title()
|
||
if len(currentSystem) > selectorTextLen {
|
||
currentSystem = currentSystem[0:selectorTextLen]
|
||
}
|
||
}
|
||
|
||
curForum := m.ctx.GetCurrentForum()
|
||
var currentForum string = "All"
|
||
if curForum.ID != "" {
|
||
currentForum = curForum.Title()
|
||
if len(currentForum) > selectorTextLen {
|
||
currentForum = currentForum[0:selectorTextLen]
|
||
}
|
||
}
|
||
|
||
systemSelector := m.ctx.Theme.Header.Selector.
|
||
Width(selectorWidth).Render(fmt.Sprintf("⏷ %s", currentSystem))
|
||
forumSelector := m.ctx.Theme.Header.Selector.
|
||
Width(selectorWidth).Render(fmt.Sprintf("⏷ %s", currentForum))
|
||
|
||
selectorColumn := lipgloss.JoinVertical(lipgloss.Center,
|
||
lipgloss.JoinHorizontal(lipgloss.Bottom, "System: \n "+
|
||
lipgloss.NewStyle().Foreground(
|
||
m.ctx.Theme.DialogBox.Bottombar.GetForeground(),
|
||
).Render("C-e"),
|
||
systemSelector),
|
||
lipgloss.JoinHorizontal(lipgloss.Bottom, "Forum: \n "+
|
||
lipgloss.NewStyle().Foreground(
|
||
m.ctx.Theme.DialogBox.Bottombar.GetForeground(),
|
||
).Render("C-t"),
|
||
forumSelector),
|
||
)
|
||
|
||
if m.ctx.Loading == true {
|
||
spinner = m.spinner.View()
|
||
}
|
||
|
||
row = lipgloss.JoinHorizontal(lipgloss.Top,
|
||
banner,
|
||
" ",
|
||
selectorColumn,
|
||
" ",
|
||
spinner,
|
||
)
|
||
|
||
return row
|
||
}
|