J.A.R.V.I.S-rust/frontend/src/components/Footer.svelte

95 lines
2.3 KiB
Svelte
Raw Normal View History

2026-01-04 22:50:34 +05:00
<script lang="ts">
import { onMount } from "svelte"
2026-01-04 09:00:51 +05:00
import { invoke } from "@tauri-apps/api/core"
2026-01-04 22:50:34 +05:00
import { appInfo } from "@/stores"
2026-01-04 22:50:34 +05:00
let authorName = ""
let tgLink = ""
let repoLink = ""
2026-01-04 22:50:34 +05:00
const currentYear = new Date().getFullYear()
2026-01-04 22:50:34 +05:00
appInfo.subscribe(info => {
tgLink = info.tgOfficialLink
repoLink = info.repositoryLink
})
onMount(async () => {
try {
authorName = await invoke<string>("get_author_name")
} catch (err) {
console.error("failed to get author name:", err)
}
})
</script>
<footer id="footer">
2026-01-04 22:50:34 +05:00
<p>© {currentYear}. Автор проекта: {authorName}</p>
<p class="links">
<a href={tgLink} target="_blank" class="special-link">
<img src="/media/icons/howdy-logo.png" alt="Telegram" width="20px" />
&nbsp;&nbsp;Наш телеграм
</a>
канал.
&nbsp;&nbsp;
2026-01-04 22:50:34 +05:00
<a href={repoLink} target="_blank">
<img src="/media/icons/github-logo.png" alt="GitHub" width="18px" />
&nbsp;Github репозиторий
</a>
проекта.
</p>
</footer>
<style lang="scss">
#footer {
text-align: center;
color: #565759;
font-size: 12px;
font-weight: bold;
line-height: 1.7em;
margin-top: 15px;
p {
margin: 0;
padding: 0;
2026-01-04 22:50:34 +05:00
&.links {
margin-top: 5px;
margin-bottom: 15px;
}
}
a {
color: #185876;
text-decoration: none;
2026-01-04 22:50:34 +05:00
transition: opacity 0.5s;
img {
2026-01-04 22:50:34 +05:00
opacity: 0.5;
transition: opacity 0.5s;
margin-top: -4px;
}
&:hover {
color: #2A9CD0;
img {
opacity: 1;
}
}
&.special-link {
color: #941d92;
display: inline-block;
&:hover {
color: #FF07FC;
background: url(/media/images/bg/bg24.gif);
background-repeat: no-repeat;
background-size: contain;
}
}
}
}
2026-01-04 22:50:34 +05:00
</style>