From 1f2dbb8e06a9482e49602be6f6f6ab2f790a1eec Mon Sep 17 00:00:00 2001
From: Lim Chee Aun
Date: Sat, 25 Feb 2023 10:04:30 +0800
Subject: [PATCH] Experimental multi-hashtag timeline
---
src/app.css | 21 ++-
src/components/shortcuts-settings.jsx | 8 +-
src/pages/hashtag.jsx | 236 +++++++++++++++++++++++++-
3 files changed, 253 insertions(+), 12 deletions(-)
diff --git a/src/app.css b/src/app.css
index e36174c7..d6664e0b 100644
--- a/src/app.css
+++ b/src/app.css
@@ -109,9 +109,8 @@ a[href^='http'][rel*='nofollow']:visited:not(:has(div)) {
border-bottom: var(--hairline-width) solid var(--divider-color);
min-height: 3em;
display: grid;
- grid-template-columns: 1fr max-content 1fr;
+ grid-template-columns: 1fr minmax(0, max-content) 1fr;
align-items: center;
- text-overflow: ellipsis;
white-space: nowrap;
}
.deck > header .header-grid > .header-side:last-of-type {
@@ -126,6 +125,9 @@ a[href^='http'][rel*='nofollow']:visited:not(:has(div)) {
padding: 0;
font-size: 1.2em;
text-align: center;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
}
.deck > header .header-grid.header-grid-2 {
grid-template-columns: 1fr max-content;
@@ -1080,7 +1082,7 @@ body:has(.status-deck) .media-post-link {
.szh-menu__item:not(.szh-menu__item--disabled, .szh-menu__item--hover) {
color: var(--text-color);
}
-.szh-menu .szh-menu__item--hover {
+.szh-menu .szh-menu__item--hover:not(.menu-field) {
color: var(--button-text-color);
background-color: var(--button-bg-color);
}
@@ -1094,6 +1096,19 @@ body:has(.status-deck) .media-post-link {
opacity: 0.5;
font-weight: normal;
}
+.szh-menu .szh-menu__item form {
+ display: flex;
+ flex: 1;
+ gap: 8px;
+ align-items: center;
+}
+.szh-menu .szh-menu__item form > input[type='text'] {
+ flex-grow: 1;
+}
+.szh-menu .szh-menu__item--hover .danger-icon {
+ color: var(--red-color);
+ opacity: 1;
+}
/* GLASS MENU */
diff --git a/src/components/shortcuts-settings.jsx b/src/components/shortcuts-settings.jsx
index d933ce27..d54e0a4c 100644
--- a/src/components/shortcuts-settings.jsx
+++ b/src/components/shortcuts-settings.jsx
@@ -75,7 +75,8 @@ const TYPE_PARAMS = {
text: '#',
name: 'hashtag',
type: 'text',
- placeholder: 'e.g PixelArt',
+ placeholder: 'e.g. PixelArt (Max 5, space-separated)',
+ pattern: '[^#]+',
},
],
};
@@ -314,7 +315,7 @@ function ShortcutForm({ type, lists, followedHashtags, onSubmit, disabled }) {
const data = new FormData(e.target);
const result = {};
data.forEach((value, key) => {
- result[key] = value;
+ result[key] = value?.trim();
});
if (!result.type) return;
onSubmit(result);
@@ -348,7 +349,7 @@ function ShortcutForm({ type, lists, followedHashtags, onSubmit, disabled }) {
{TYPE_PARAMS[currentType]?.map?.(
- ({ text, name, type, placeholder }) => {
+ ({ text, name, type, placeholder, pattern }) => {
if (currentType === 'list') {
return (
@@ -382,6 +383,7 @@ function ShortcutForm({ type, lists, followedHashtags, onSubmit, disabled }) {
autocorrect="off"
autocapitalize="off"
spellcheck={false}
+ pattern={pattern}
/>
{currentType === 'hashtag' && followedHashtags.length > 0 && (