Merge pull request #321 from jacany/default-page

Add default page selector
This commit is contained in:
Kieran 2023-02-17 15:36:00 +00:00 committed by GitHub
commit 8a3f48b81c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 50 additions and 2 deletions

View File

@ -15,7 +15,7 @@ import { debounce } from "Util";
export default function RootPage() {
const { formatMessage } = useIntl();
const { loggedOut, publicKey: pubKey, follows, tags, relays } = useSelector((s: RootState) => s.login);
const { loggedOut, publicKey: pubKey, follows, tags, relays, preferences } = useSelector((s: RootState) => s.login);
const RootTab: Record<string, Tab> = {
Posts: {
text: formatMessage(messages.Posts),
@ -30,7 +30,16 @@ export default function RootPage() {
value: 2,
},
};
const [tab, setTab] = useState<Tab>(RootTab.Posts);
const [tab, setTab] = useState<Tab>(() => {
switch (preferences.defaultRootTab) {
case "conversations":
return RootTab.PostsAndReplies;
case "global":
return RootTab.Global;
default:
return RootTab.Posts;
}
});
const [relay, setRelay] = useState<string>();
const [globalRelays, setGlobalRelays] = useState<string[]>([]);
const tagTabs = tags.map((t, idx) => {

View File

@ -50,6 +50,35 @@ const PreferencesPage = () => {
</select>
</div>
</div>
<div className="card flex">
<div className="flex f-col f-grow">
<div>
<FormattedMessage {...messages.DefaultRootTab} />
</div>
</div>
<div>
<select
value={perf.defaultRootTab}
onChange={e =>
dispatch(
setPreferences({
...perf,
defaultRootTab: e.target.value,
} as UserPreferences)
)
}>
<option value="posts">
<FormattedMessage {...messages.Posts} />
</option>
<option value="conversations">
<FormattedMessage {...messages.Conversations} />
</option>
<option value="global">
<FormattedMessage {...messages.Global} />
</option>
</select>
</div>
</div>
<div className="card flex">
<div className="flex f-col f-grow">
<div>

View File

@ -15,6 +15,10 @@ export default defineMessages({
System: { defaultMessage: "System (Default)" },
Light: { defaultMessage: "Light" },
Dark: { defaultMessage: "Dark" },
DefaultRootTab: { defaultMessage: "Default Page" },
Posts: { defaultMessage: "Posts" },
Conversations: { defaultMessage: "Conversations" },
Global: { defaultMessage: "Global" },
AutoloadMedia: { defaultMessage: "Automatically load media" },
AutoloadMediaHelp: {
defaultMessage: "Media in posts will automatically be shown for selected people, otherwise only the link will show",

View File

@ -65,6 +65,11 @@ export interface UserPreferences {
* Use imgproxy to optimize images
*/
imgProxyConfig: ImgProxySettings | null;
/**
* Default page to select on load
*/
defaultRootTab: "posts" | "conversations" | "global";
}
export type DbType = "indexdDb" | "redux";
@ -225,6 +230,7 @@ export const InitState = {
autoShowLatest: false,
fileUploader: "void.cat",
imgProxyConfig: DefaultImgProxy,
defaultRootTab: "posts",
},
} as LoginStore;