mirror of
https://github.com/BetterSEQTA/BetterSEQTA-Plus.git
synced 2026-06-05 19:24:39 +00:00
feat: remove hover animation for tabbedcontainer + fix publish script with detailed versioning
This commit is contained in:
+24
-6
@@ -5,26 +5,44 @@ const path = require('path');
|
|||||||
|
|
||||||
function getLatestVersion(files) {
|
function getLatestVersion(files) {
|
||||||
console.log('Files passed to getLatestVersion:', files);
|
console.log('Files passed to getLatestVersion:', files);
|
||||||
|
|
||||||
const versions = files.map(file => {
|
const versions = files.map(file => {
|
||||||
const match = file.match(/@(\d+\.\d+\.\d+)-/);
|
const match = file.match(/@([\d\.]+)-/);
|
||||||
console.log('Matching file:', file, 'Version found:', match ? match[1] : 'None');
|
console.log('Matching file:', file, 'Version found:', match ? match[1] : 'None');
|
||||||
return match ? match[1] : null;
|
|
||||||
|
if (!match) return null;
|
||||||
|
|
||||||
|
const fullVersion = match[1]; // Original version (e.g., 3.4.5.1)
|
||||||
|
const semverVersion = fullVersion.split('.').slice(0, 3).join('.'); // Trim to 3.4.5
|
||||||
|
|
||||||
|
return { fullVersion, semverVersion };
|
||||||
}).filter(Boolean);
|
}).filter(Boolean);
|
||||||
|
|
||||||
console.log('Extracted versions:', versions);
|
console.log('Extracted versions:', versions.map(v => v.semverVersion));
|
||||||
const latestVersion = semver.maxSatisfying(versions, '*');
|
|
||||||
console.log('Latest version:', latestVersion);
|
// Find latest version using the trimmed semver format
|
||||||
|
const latestSemver = semver.maxSatisfying(versions.map(v => v.semverVersion), '*');
|
||||||
|
console.log('Latest SemVer-compatible version:', latestSemver);
|
||||||
|
|
||||||
|
// Get the full version that matches the latest SemVer version
|
||||||
|
const latestVersion = versions.find(v => v.semverVersion === latestSemver)?.fullVersion || null;
|
||||||
|
|
||||||
|
console.log('Final selected latest version:', latestVersion);
|
||||||
return latestVersion;
|
return latestVersion;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getLatestFiles(browser) {
|
function getLatestFiles(browser) {
|
||||||
const pattern = `dist/betterseqtaplus@*-*${browser}.zip`;
|
const pattern = `dist/betterseqtaplus@*-*${browser}.zip`;
|
||||||
console.log('Glob pattern:', pattern);
|
console.log('Glob pattern:', pattern);
|
||||||
|
|
||||||
const files = glob.sync(pattern);
|
const files = glob.sync(pattern);
|
||||||
console.log('Files found for browser', browser, ':', files);
|
console.log('Files found for browser', browser, ':', files);
|
||||||
|
|
||||||
const latestVersion = getLatestVersion(files);
|
const latestVersion = getLatestVersion(files);
|
||||||
|
|
||||||
const latestFile = files.find(file => file.includes(latestVersion));
|
// Find the exact file by matching the original full version
|
||||||
|
const latestFile = files.find(file => file.includes(`@${latestVersion}-`));
|
||||||
|
|
||||||
console.log('Latest file for browser', browser, ':', latestFile);
|
console.log('Latest file for browser', browser, ':', latestFile);
|
||||||
return latestFile;
|
return latestFile;
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "betterseqtaplus",
|
"name": "betterseqtaplus",
|
||||||
"version": "3.4.5",
|
"version": "3.4.6",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"description": "Enhance SEQTA Learn's usability and aesthetics! A fork of BetterSEQTA to continue development add add heaps more features!",
|
"description": "Enhance SEQTA Learn's usability and aesthetics! A fork of BetterSEQTA to continue development add add heaps more features!",
|
||||||
"browserslist": "> 0.5%, last 2 versions, not dead",
|
"browserslist": "> 0.5%, last 2 versions, not dead",
|
||||||
|
|||||||
+1235
-1026
File diff suppressed because it is too large
Load Diff
@@ -5,7 +5,6 @@
|
|||||||
|
|
||||||
let { tabs } = $props<{ tabs: { title: string, Content: any, props?: any }[] }>();
|
let { tabs } = $props<{ tabs: { title: string, Content: any, props?: any }[] }>();
|
||||||
let activeTab = $state(0);
|
let activeTab = $state(0);
|
||||||
let hoveredTab = $state<number | null>(null);
|
|
||||||
let containerRef: HTMLElement | null = null;
|
let containerRef: HTMLElement | null = null;
|
||||||
let tabWidth = $state(0);
|
let tabWidth = $state(0);
|
||||||
|
|
||||||
@@ -24,10 +23,6 @@
|
|||||||
return 0;
|
return 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
$effect(() => {
|
|
||||||
calcXPos(hoveredTab);
|
|
||||||
});
|
|
||||||
|
|
||||||
onMount(() => {
|
onMount(() => {
|
||||||
updateTabWidth();
|
updateTabWidth();
|
||||||
|
|
||||||
@@ -45,19 +40,17 @@
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="flex flex-col h-full">
|
<div class="flex flex-col h-full">
|
||||||
<div bind:this={containerRef} class="top-0 z-10 text-[0.875rem] pb-0.5 mx-4 tab-width-container">
|
<div class="top-0 z-10 text-[0.875rem] pb-0.5 mx-4 px-2 tab-width-container">
|
||||||
<div class="relative flex">
|
<div bind:this={containerRef} class="relative flex">
|
||||||
<MotionDiv
|
<MotionDiv
|
||||||
class="absolute top-0 left-0 z-0 h-full bg-[#DDDDDD] dark:bg-[#38373D] rounded-full opacity-40 tab-width"
|
class="absolute top-0 left-0 z-0 h-full bg-[#DDDDDD] dark:bg-[#38373D] rounded-full opacity-40 tab-width"
|
||||||
animate={{ x: calcXPos(hoveredTab) }}
|
animate={{ x: calcXPos(activeTab) }}
|
||||||
transition={springTransition}
|
transition={springTransition}
|
||||||
/>
|
/>
|
||||||
{#each tabs as { title }, index}
|
{#each tabs as { title }, index}
|
||||||
<button
|
<button
|
||||||
class="relative z-10 flex-1 px-4 py-2 focus-visible:outline-none"
|
class="relative z-10 flex-1 px-4 py-2 focus-visible:outline-none"
|
||||||
onclick={() => activeTab = index}
|
onclick={() => activeTab = index}
|
||||||
onmouseenter={() => hoveredTab = index}
|
|
||||||
onmouseleave={() => hoveredTab = null}
|
|
||||||
>
|
>
|
||||||
{title}
|
{title}
|
||||||
</button>
|
</button>
|
||||||
@@ -80,4 +73,4 @@
|
|||||||
</div>
|
</div>
|
||||||
</MotionDiv>
|
</MotionDiv>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -36,7 +36,7 @@
|
|||||||
"matches": ["*://*/*"]
|
"matches": ["*://*/*"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"resources": ["resources/icons/*"],
|
"resources": ["resources/*"],
|
||||||
"matches": ["*://*/*"]
|
"matches": ["*://*/*"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user