forked from Kieran/snort
Merge pull request #321 from jacany/default-page
Add default page selector
This commit is contained in:
commit
8a3f48b81c
@ -15,7 +15,7 @@ import { debounce } from "Util";
|
|||||||
|
|
||||||
export default function RootPage() {
|
export default function RootPage() {
|
||||||
const { formatMessage } = useIntl();
|
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> = {
|
const RootTab: Record<string, Tab> = {
|
||||||
Posts: {
|
Posts: {
|
||||||
text: formatMessage(messages.Posts),
|
text: formatMessage(messages.Posts),
|
||||||
@ -30,7 +30,16 @@ export default function RootPage() {
|
|||||||
value: 2,
|
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 [relay, setRelay] = useState<string>();
|
||||||
const [globalRelays, setGlobalRelays] = useState<string[]>([]);
|
const [globalRelays, setGlobalRelays] = useState<string[]>([]);
|
||||||
const tagTabs = tags.map((t, idx) => {
|
const tagTabs = tags.map((t, idx) => {
|
||||||
|
@ -50,6 +50,35 @@ const PreferencesPage = () => {
|
|||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</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="card flex">
|
||||||
<div className="flex f-col f-grow">
|
<div className="flex f-col f-grow">
|
||||||
<div>
|
<div>
|
||||||
|
@ -15,6 +15,10 @@ export default defineMessages({
|
|||||||
System: { defaultMessage: "System (Default)" },
|
System: { defaultMessage: "System (Default)" },
|
||||||
Light: { defaultMessage: "Light" },
|
Light: { defaultMessage: "Light" },
|
||||||
Dark: { defaultMessage: "Dark" },
|
Dark: { defaultMessage: "Dark" },
|
||||||
|
DefaultRootTab: { defaultMessage: "Default Page" },
|
||||||
|
Posts: { defaultMessage: "Posts" },
|
||||||
|
Conversations: { defaultMessage: "Conversations" },
|
||||||
|
Global: { defaultMessage: "Global" },
|
||||||
AutoloadMedia: { defaultMessage: "Automatically load media" },
|
AutoloadMedia: { defaultMessage: "Automatically load media" },
|
||||||
AutoloadMediaHelp: {
|
AutoloadMediaHelp: {
|
||||||
defaultMessage: "Media in posts will automatically be shown for selected people, otherwise only the link will show",
|
defaultMessage: "Media in posts will automatically be shown for selected people, otherwise only the link will show",
|
||||||
|
@ -65,6 +65,11 @@ export interface UserPreferences {
|
|||||||
* Use imgproxy to optimize images
|
* Use imgproxy to optimize images
|
||||||
*/
|
*/
|
||||||
imgProxyConfig: ImgProxySettings | null;
|
imgProxyConfig: ImgProxySettings | null;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Default page to select on load
|
||||||
|
*/
|
||||||
|
defaultRootTab: "posts" | "conversations" | "global";
|
||||||
}
|
}
|
||||||
|
|
||||||
export type DbType = "indexdDb" | "redux";
|
export type DbType = "indexdDb" | "redux";
|
||||||
@ -225,6 +230,7 @@ export const InitState = {
|
|||||||
autoShowLatest: false,
|
autoShowLatest: false,
|
||||||
fileUploader: "void.cat",
|
fileUploader: "void.cat",
|
||||||
imgProxyConfig: DefaultImgProxy,
|
imgProxyConfig: DefaultImgProxy,
|
||||||
|
defaultRootTab: "posts",
|
||||||
},
|
},
|
||||||
} as LoginStore;
|
} as LoginStore;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user