Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
088bb0c
fix(sidebar): gap
xdeq May 19, 2025
3be7562
feat(BlocksTimelineTable): collapse sidebar
xdeq May 19, 2025
afc9da9
fix: use grid for small tables on home page
xdeq May 19, 2025
1b98de6
feat(sidebar): Add terminal link
xdeq May 19, 2025
509ec44
Fix sidebar jumping, long constant, transactions widget
GusevPM May 19, 2025
3c7f40b
fix(BlocksTimelineTable): icon direction
xdeq May 20, 2025
e566086
fix sticky sidebar
xdeq May 20, 2025
6564ada
rm
xdeq May 20, 2025
d33c804
Cleanup
xdeq May 20, 2025
4b989c0
Fix message type filtering on the block page
GusevPM May 20, 2025
08e5cf7
Fix SEO
xdeq May 20, 2025
63483ef
Merge branch 'dev' of github.com:celenium-io/celenium-interface into dev
xdeq May 20, 2025
933c2c0
Handle empty tx signer
GusevPM May 20, 2025
935e024
Merge branch 'dev' of https://github.com/celenium-io/celenium-interfa…
GusevPM May 20, 2025
9178cfe
Move tx memo copy btn
GusevPM May 20, 2025
177ffde
feat: watch for update
xdeq Jun 6, 2025
37946f6
test runtime config ver
xdeq Jun 6, 2025
a0b130d
test: update runtime config ver
xdeq Jun 6, 2025
2443981
revert test version
xdeq Jun 6, 2025
84a2808
Add oxlint
xdeq Jun 11, 2025
2db4f54
fix: fetchAccountInfo log error
xdeq Jun 11, 2025
e082da1
fix(Connection): cleanup
xdeq Jun 11, 2025
cf3417c
ref(BlobsWidget): new Array to Array.from
xdeq Jun 11, 2025
4c96f78
minor fixes
xdeq Jun 11, 2025
d32bac4
minor fixes
xdeq Jun 11, 2025
0b39066
cleanup & minor fixes
xdeq Jun 11, 2025
801d078
fix(TransactionsWidget): remove Skeleton
xdeq Jun 11, 2025
4c2847d
ref: .store suffix
xdeq Jun 13, 2025
febf727
Merge branch 'master' into dev
xdeq Jun 16, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .oxlintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"rules": {
"no-async-promise-executor": "off"
},
"ignorePatterns": ["services/lumina-node-wasm/**", "services/utils/blob.js", "services/utils/blobtx.js"]
}
3 changes: 3 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"oxc.enable": true
}
68 changes: 56 additions & 12 deletions app.vue
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import * as Sentry from "@sentry/vue"
/** Services */
import Socket from "@/services/api/socket"
import amp from "@/services/amp"
import { watchForUpdate } from "@/services/version"

/** Components */
import ModalsManager from "@/components/modals/ModalsManager.vue"
Expand All @@ -16,22 +17,22 @@ import { fetchHead } from "@/services/api/main"
import { fetchLatestBlocks } from "@/services/api/block"

/** Store */
import { useNodeStore } from "@/store/node"
import { useAppStore } from "@/store/app"
import { useBookmarksStore } from "@/store/bookmarks"
import { useSettingsStore } from "@/store/settings"
import { useEnumStore } from "@/store/enums"
import { useLegalStore } from "@/store/legal"
import { useNotificationsStore } from "@/store/notifications"
import { useRollupsRankingStore } from "@/store/rollupsrank"
import { useNodeStore } from "@/store/node.store"
import { useAppStore } from "@/store/app.store"
import { useBookmarksStore } from "@/store/bookmarks.store"
import { useSettingsStore } from "@/store/settings.store"
import { useEnumStore } from "@/store/enums.store"
import { useLegalStore } from "@/store/legal.store"
import { useNotificationsStore } from "@/store/notifications.store"
import { useActivityStore } from "@/store/activity.store"
const nodeStore = useNodeStore()
const appStore = useAppStore()
const bookmarksStore = useBookmarksStore()
const settingsStore = useSettingsStore()
const enumStore = useEnumStore()
const legalStore = useLegalStore()
const notificationsStore = useNotificationsStore()
const rollupsRankingStore = useRollupsRankingStore()
const activityStore = useActivityStore()

bookmarksStore.$subscribe((mutation, state) => {
localStorage.setItem("bookmarks", JSON.stringify(state.bookmarks))
Expand All @@ -42,11 +43,50 @@ settingsStore.$subscribe((mutation, state) => {
legalStore.$subscribe((mutation, state) => {
localStorage.setItem("legal", JSON.stringify(state.legal))
})
rollupsRankingStore.$subscribe((mutation, state) => {
activityStore.$subscribe((mutation, state) => {
localStorage.setItem("rollups_ranking", JSON.stringify(state.rollups_ranking))
})

let watchInterval = null

onMounted(async () => {
/**
* Watch for package.json->version and notify users about the new version
*/
appStore.version = (await $fetch("/api/version")).version
if (!import.meta.dev)
watchInterval = watchForUpdate(appStore.version, (newVersion) => {
clearInterval(watchInterval)
notificationsStore.create({
notification: {
type: "success",
icon: "info",
title: "New update is available",
description: "Refresh the page to get the latest update with new features & bug fixes.",
autoDestroy: false,
irremovable: true,
actions: [
{
name: "Refresh",
icon: "refresh",
callback: () => {
location.reload()
},
},
{
name: "Changelog",
icon: "menu",
callback: () => {
window
.open(`https://github.com/celenium-io/celenium-interface/releases/tag/v${newVersion}`, "_blank")
.focus()
},
},
],
},
})
})

if (localStorage.bookmarks) {
bookmarksStore.bookmarks = JSON.parse(localStorage.bookmarks)
}
Expand All @@ -56,7 +96,7 @@ onMounted(async () => {
}

settingsStore.init()
rollupsRankingStore.init()
activityStore.init()

const runtimeConfig = useRuntimeConfig()
amp.init(runtimeConfig.public.AMP)
Expand Down Expand Up @@ -117,6 +157,10 @@ onMounted(async () => {
Socket.close()
}
})

onBeforeUnmount(() => {
clearInterval(watchInterval)
})
</script>

<template>
Expand All @@ -127,9 +171,9 @@ onMounted(async () => {
<NuxtPage />

<div id="tooltip" />
<div id="modal" />
<div id="dropdown" />
<div id="popover" />
<div id="modal" />

<ModalsManager />
<Notifications />
Expand Down
6 changes: 5 additions & 1 deletion assets/icons.json

Large diffs are not rendered by default.

23 changes: 10 additions & 13 deletions assets/styles/base.scss
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,8 @@ $grayscale: (
--neutral-mint: #109373;
--dark-mint: #1e473d;
--legendary: #ff5a17;
--epic: #7448E7;
--rare: #007AFF;
--epic: #7448e7;
--rare: #007aff;

/* Grayscale */
@each $gray, $value in $grayscale {
Expand Down Expand Up @@ -78,10 +78,9 @@ $grayscale: (
--validator-active: #85f891;
--validator-inactive: #1ca7ed;
--validator-jailed: #f8774a;
// --supply: #65c7f8;
--supply: #1ca7ed;
--staking: #85f891;
--geo-map: #8B8C8D;
--geo-map: #8b8c8d;
}

[theme="dimmed"] {
Expand All @@ -105,7 +104,6 @@ $grayscale: (
--txt-white: rgba(255, 255, 255, 95%);

/* General */
// --brand: #18d2a5;
--brand: #33a853;
--blue: #0b84fe;
--red: #eb5757;
Expand All @@ -120,8 +118,8 @@ $grayscale: (
--neutral-mint: #109373;
--dark-mint: #1e473d;
--legendary: #ff5a17;
--epic: #7448E7;
--rare: #007AFF;
--epic: #7448e7;
--rare: #007aff;

/* Grayscale */
@each $gray, $value in $grayscale {
Expand All @@ -146,7 +144,7 @@ $grayscale: (
--block-progress-fill-background: #33a853;
--logo-name: var(--txt-primary);
--bar-fill: rgb(243, 147, 45);
--geo-map: #8B8C8D;
--geo-map: #8b8c8d;
}

[theme="light"] {
Expand All @@ -170,7 +168,6 @@ $grayscale: (
--txt-white: rgba(255, 255, 255, 95%);

/* General */
// --brand: #18d2a5;
--brand: #0ade71;
--blue: #0b84fe;
--red: #eb5757;
Expand All @@ -185,8 +182,8 @@ $grayscale: (
--neutral-mint: #109373;
--dark-mint: #c4f9eb;
--legendary: #ff5a17;
--epic: #7448E7;
--rare: #007AFF;
--epic: #7448e7;
--rare: #007aff;

/* Grayscale */
@each $gray, $value in $grayscale {
Expand All @@ -211,7 +208,7 @@ $grayscale: (
--block-progress-fill-background: #33a853;
--logo-name: var(--txt-primary);
--bar-fill: rgb(243, 147, 45);
--geo-map: #8B8C8D;
--geo-map: #8b8c8d;
}

@font-face {
Expand Down Expand Up @@ -273,7 +270,7 @@ body {
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);

user-select: text;
}

Expand Down
10 changes: 8 additions & 2 deletions components/ActionBar.vue
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,20 @@ import Search from "@/components/modules/navigation/Search.vue"
import { isMobile } from "@/services/utils"

/** Store */
import { useAppStore } from "@/store/app"
import { useAppStore } from "@/store/app.store"
const appStore = useAppStore()
</script>

<template>
<Flex wide align="center" justify="between" gap="24" :class="$style.wrapper">
<Flex wide align="center" gap="12">
<Button v-if="isMobile()" @click="appStore.showSidebar = !appStore.showSidebar" type="secondary" size="medium" :class="$style.menu_btn">
<Button
v-if="isMobile()"
@click="appStore.showSidebar = !appStore.showSidebar"
type="secondary"
size="medium"
:class="$style.menu_btn"
>
<Icon name="menu" size="16" color="primary" />
</Button>

Expand Down
6 changes: 3 additions & 3 deletions components/AmountInCurrency.vue
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import { amountToString } from "@/services/utils"
import Tooltip from "@/components/ui/Tooltip.vue"

/** Store */
import { useAppStore } from "@/store/app"
import { useAppStore } from "@/store/app.store"
const appStore = useAppStore()

const currentPrice = computed(() => appStore.currentPrice)
Expand Down Expand Up @@ -74,12 +74,12 @@ const calculatedAmount = computed(() => {
...defaultCurrencyStyle,
...props.styles.currency,
},
}
},
}

let tiaDisplay
let tiaExchange
if (finalAmount.amount.unit === 'utia') {
if (finalAmount.amount.unit === "utia") {
tiaExchange = finalAmount.amount.value / 1_000_000

if (finalAmount.amount.currency === "TIA") {
Expand Down
2 changes: 1 addition & 1 deletion components/BadgeValue.vue
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import { space } from "@/services/utils"

/** Store */
import { useNotificationsStore } from "@/store/notifications"
import { useNotificationsStore } from "@/store/notifications.store"
const notificationsStore = useNotificationsStore()

const props = defineProps({
Expand Down
13 changes: 5 additions & 8 deletions components/BookmarkButton.vue
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@
import Button from "@/components/ui/Button.vue"

/** Services */
import { capitilize } from "~/services/utils"
import { capitilize } from "@/services/utils"

/** Store */
import { useBookmarksStore } from "@/store/bookmarks"
import { useCacheStore } from "@/store/cache"
import { useModalsStore } from "@/store/modals"
import { useNotificationsStore } from "@/store/notifications"
import { useBookmarksStore } from "@/store/bookmarks.store"
import { useCacheStore } from "@/store/cache.store"
import { useModalsStore } from "@/store/modals.store"
import { useNotificationsStore } from "@/store/notifications.store"
const bookmarksStore = useBookmarksStore()
const cacheStore = useCacheStore()
const modalsStore = useModalsStore()
Expand Down Expand Up @@ -39,7 +39,6 @@ const bookmarkText = computed(() => {

const handleBookmark = () => {
if (!isBookmarked.value) {

let newBookmark = {
id: props.id,
type: capitilize(props.type),
Expand Down Expand Up @@ -70,7 +69,6 @@ const handleBookmark = () => {
cacheStore.current.bookmark = newBookmark
modalsStore.open("edit_alias")
}

} else {
let notification = {}

Expand Down Expand Up @@ -101,7 +99,6 @@ const handleBookmark = () => {
onMounted(() => {
isBookmarked.value = bookmarksStore.getBookmark(props.type, props.id) ? true : false
})

</script>

<template>
Expand Down
18 changes: 6 additions & 12 deletions components/Connection.vue
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,13 @@ import { Dropdown, DropdownTitle, DropdownItem, DropdownDivider } from "@/compon

/** Services */
import amp from "@/services/amp"
import { disconnect } from "~/services/wallet"
import { disconnect } from "@/services/wallet"
import { arabica, mainnet, mammoth, mocha } from "@/services/chains"

/** Store */
import { useAppStore } from "@/store/app"
import { useModalsStore } from "@/store/modals"
import { useNotificationsStore } from "@/store/notifications"
import { useAppStore } from "@/store/app.store"
import { useModalsStore } from "@/store/modals.store"
import { useNotificationsStore } from "@/store/notifications.store"
const appStore = useAppStore()
const modalsStore = useModalsStore()
const notificationsStore = useNotificationsStore()
Expand All @@ -22,28 +22,22 @@ const { hostname } = useRequestURL()

switch (hostname) {
case "celenium.io":
// case "dev.celenium.io":
appStore.network = mainnet
break

case "mocha.celenium.io":
case "mocha-4.celenium.io":
appStore.network = mocha
break

case "mammoth.celenium.io":
appStore.network = mammoth
break

case "mammoth.celenium.io":
appStore.network = mammoth
break

// case "arabica.celenium.io":
case "localhost":
appStore.network = arabica
break

default:
appStore.network = arabica
break
Expand Down
2 changes: 1 addition & 1 deletion components/CopyButton.vue
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<script setup>
/** Store */
import { useNotificationsStore } from "@/store/notifications"
import { useNotificationsStore } from "@/store/notifications.store"
const notificationsStore = useNotificationsStore()

const props = defineProps({
Expand Down
Loading