diff --git a/frontend/web/src/components/AnalyticsView.tsx b/frontend/web/src/components/AnalyticsView.tsx index 8d15a6c..b4d1156 100644 --- a/frontend/web/src/components/AnalyticsView.tsx +++ b/frontend/web/src/components/AnalyticsView.tsx @@ -34,6 +34,12 @@ const AnalyticsView: React.FC = (props: Props) => { {t("analytics.visitors")}
+ {analytics.referenceData.length === 0 && ( +
+ +

No data found.

+
+ )} {analytics.referenceData.map((reference) => (
@@ -89,6 +95,12 @@ const AnalyticsView: React.FC = (props: Props) => { {t("analytics.visitors")}
+ {analytics.browserData.length === 0 && ( +
+ +

No data found.

+
+ )} {analytics.browserData.map((reference) => (
@@ -106,6 +118,12 @@ const AnalyticsView: React.FC = (props: Props) => { {t("analytics.visitors")}
+ {analytics.deviceData.length === 0 && ( +
+ +

No data found.

+
+ )} {analytics.deviceData.map((device) => (
{device.name || "Unknown"} diff --git a/frontend/web/src/components/CollectionView.tsx b/frontend/web/src/components/CollectionView.tsx index fffecc6..9010bab 100644 --- a/frontend/web/src/components/CollectionView.tsx +++ b/frontend/web/src/components/CollectionView.tsx @@ -10,7 +10,6 @@ import useResponsiveWidth from "@/hooks/useResponsiveWidth"; import { useAppSelector } from "@/stores"; import useCollectionStore from "@/stores/v1/collection"; import { Collection } from "@/types/proto/api/v2/collection_service"; -import { Visibility } from "@/types/proto/api/v2/common"; import { showCommonDialog } from "./Alert"; import CreateCollectionDialog from "./CreateCollectionDialog"; import Icon from "./Icon"; @@ -65,11 +64,9 @@ const CollectionView = (props: Props) => {

{collection.description}

- {collection.visibility !== Visibility.PRIVATE && ( - - - - )} + + + { )}
-
+
{shortcut.title ? ( <> {shortcut.title} @@ -51,11 +51,12 @@ const ShortcutView = (props: Props) => { )} to={`/s/${shortcut.name}`} target="_blank" + onClick={(e) => e.stopPropagation()} > {showActions && ( -
+
e.stopPropagation()}>
)} diff --git a/frontend/web/src/components/ShortcutsContainer.tsx b/frontend/web/src/components/ShortcutsContainer.tsx index 37bb45c..85755e7 100644 --- a/frontend/web/src/components/ShortcutsContainer.tsx +++ b/frontend/web/src/components/ShortcutsContainer.tsx @@ -15,7 +15,7 @@ const ShortcutsContainer: React.FC = (props: Props) => { const ShortcutItemView = viewStore.displayStyle === "compact" ? ShortcutView : ShortcutCard; const handleShortcutClick = (shortcut: Shortcut) => { - window.open(absolutifyLink(`/s/${shortcut.id}`)); + window.open(absolutifyLink(`/s/${shortcut.name}`)); }; return ( diff --git a/frontend/web/src/pages/CollectionSpace.tsx b/frontend/web/src/pages/CollectionSpace.tsx index f11cf12..1d35d76 100644 --- a/frontend/web/src/pages/CollectionSpace.tsx +++ b/frontend/web/src/pages/CollectionSpace.tsx @@ -8,6 +8,7 @@ import ShortcutView from "@/components/ShortcutView"; import useResponsiveWidth from "@/hooks/useResponsiveWidth"; import useCollectionStore from "@/stores/v1/collection"; import useShortcutStore from "@/stores/v1/shortcut"; +import useUserStore from "@/stores/v1/user"; import { Collection } from "@/types/proto/api/v2/collection_service"; import { Shortcut } from "@/types/proto/api/v2/shortcut_service"; import { convertShortcutFromPb } from "@/utils/shortcut"; @@ -15,6 +16,7 @@ import { convertShortcutFromPb } from "@/utils/shortcut"; const CollectionSpace = () => { const { collectionName } = useParams(); const { sm } = useResponsiveWidth(); + const userStore = useUserStore(); const collectionStore = useCollectionStore(); const shortcutStore = useShortcutStore(); const [collection, setCollection] = useState(); @@ -30,6 +32,7 @@ const CollectionSpace = () => { try { const collection = await collectionStore.fetchCollectionByName(collectionName); setCollection(collection); + document.title = `${collection.title} - Slash`; setShortcuts([]); for (const shortcutId of collection.shortcutIds) { try { @@ -52,6 +55,8 @@ const CollectionSpace = () => { return null; } + const creator = userStore.getUserById(collection.creatorId); + const handleShortcutClick = (shortcut: Shortcut) => { if (sm) { setSelectedShortcut(shortcut); @@ -115,6 +120,10 @@ const CollectionSpace = () => {

Click on a tab in the Sidebar to get started.

+ +

+ Shared by {creator.nickname} +

)} diff --git a/frontend/web/src/pages/ShortcutDetail.tsx b/frontend/web/src/pages/ShortcutDetail.tsx index a70031b..bef7e0c 100644 --- a/frontend/web/src/pages/ShortcutDetail.tsx +++ b/frontend/web/src/pages/ShortcutDetail.tsx @@ -61,7 +61,7 @@ const ShortcutDetail = () => { {favicon ? ( ) : ( - + )}
{ target="_blank" >
- {shortcut.title} {shortcut.title ? ( - (s/{shortcut.name}) + <> + {shortcut.title} + (s/{shortcut.name}) + ) : ( <> s/ diff --git a/server/version/version.go b/server/version/version.go index 9104aaf..2330b82 100644 --- a/server/version/version.go +++ b/server/version/version.go @@ -9,10 +9,10 @@ import ( // Version is the service current released version. // Semantic versioning: https://semver.org/ -var Version = "0.4.6" +var Version = "0.5.0" // DevVersion is the service current development version. -var DevVersion = "0.4.6" +var DevVersion = "0.5.0" func GetCurrentVersion(mode string) string { if mode == "dev" || mode == "demo" {