Skip to content

Commit 86cc8a3

Browse files
committed
FE: skeleton uplift
1 parent 3f4d684 commit 86cc8a3

2 files changed

Lines changed: 36 additions & 13 deletions

File tree

front/css/dark-patch.css

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
--color-red: #dd4b39;
2222
--color-gray: #8c8c8c;
2323
--color-lightgray: #bec5cb;
24-
--color-white: #fff;
2524
--skel-base: #353c42;
2625
--skel-shine: #272c30;
2726
--skel-section: #272c30;

front/js/common.js

Lines changed: 36 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -969,34 +969,52 @@ $(document).on('click', 'a', function (e) {
969969
}
970970
});
971971

972-
function showSpinner(stringKey = 'Loading') {
973-
let text = isEmpty(stringKey) ? "Loading..." : getString(stringKey || "Loading");
972+
function resolveSpinnerTarget(explicitTarget = null) {
973+
if (explicitTarget) {
974+
return $(explicitTarget);
975+
}
976+
977+
// Active tab pane
978+
const activeTab = $(".tab-pane.active .spinnerTarget").first();
979+
if (activeTab.length) {
980+
return activeTab;
981+
}
982+
983+
// Visible container fallback
984+
const visibleTarget = $(".spinnerTarget:visible").first();
985+
if (visibleTarget.length) {
986+
return visibleTarget;
987+
}
988+
989+
return $();
990+
}
991+
992+
function showSpinner(stringKey = "Loading", target = null) {
993+
let text = isEmpty(stringKey)
994+
? "Loading..."
995+
: getString(stringKey || "Loading");
974996

975997
if (!text || !text.trim()) {
976-
text = "Loading..."
998+
text = "Loading...";
977999
}
9781000

9791001
const spinner = $("#loadingSpinner");
980-
const target = $(".spinnerTarget").first(); // Only use the first one if multiple exist
1002+
const resolvedTarget = resolveSpinnerTarget(target);
9811003

9821004
$("#loadingSpinnerText").text(text);
9831005

984-
if (target.length) {
985-
// Position relative to target
986-
const offset = target.offset();
987-
const width = target.outerWidth();
988-
const height = target.outerHeight();
1006+
if (resolvedTarget.length) {
1007+
const offset = resolvedTarget.offset();
9891008

9901009
spinner.css({
9911010
position: "absolute",
9921011
top: offset.top,
9931012
left: offset.left,
994-
width: width,
995-
height: height,
1013+
width: resolvedTarget.outerWidth(),
1014+
height: resolvedTarget.outerHeight(),
9961015
zIndex: 9999
9971016
});
9981017
} else {
999-
// Fullscreen fallback
10001018
spinner.css({
10011019
position: "fixed",
10021020
top: 0,
@@ -1013,6 +1031,12 @@ function showSpinner(stringKey = 'Loading') {
10131031
});
10141032
}
10151033

1034+
function hideSpinner() {
1035+
$("#loadingSpinner")
1036+
.removeClass("visible")
1037+
.fadeOut(animationTime);
1038+
}
1039+
10161040
function hideSpinner() {
10171041
clearTimeout(spinnerTimeout);
10181042
const spinner = $("#loadingSpinner");

0 commit comments

Comments
 (0)