Add background notif text to subscribe dialog

only when web push is enabled
pull/788/head
nimbleghost 2023-06-28 08:57:57 +02:00
parent dabb6a481f
commit 95cfe16676
2 changed files with 18 additions and 6 deletions

View File

@ -171,6 +171,7 @@
"subscribe_dialog_subscribe_description": "Topics may not be password-protected, so choose a name that's not easy to guess. Once subscribed, you can PUT/POST notifications.", "subscribe_dialog_subscribe_description": "Topics may not be password-protected, so choose a name that's not easy to guess. Once subscribed, you can PUT/POST notifications.",
"subscribe_dialog_subscribe_topic_placeholder": "Topic name, e.g. phil_alerts", "subscribe_dialog_subscribe_topic_placeholder": "Topic name, e.g. phil_alerts",
"subscribe_dialog_subscribe_use_another_label": "Use another server", "subscribe_dialog_subscribe_use_another_label": "Use another server",
"subscribe_dialog_subscribe_use_another_background_info": "Note: Background notifications are not supported on other servers",
"subscribe_dialog_subscribe_base_url_label": "Service URL", "subscribe_dialog_subscribe_base_url_label": "Service URL",
"subscribe_dialog_subscribe_button_generate_topic_name": "Generate name", "subscribe_dialog_subscribe_button_generate_topic_name": "Generate name",
"subscribe_dialog_subscribe_button_cancel": "Cancel", "subscribe_dialog_subscribe_button_cancel": "Cancel",

View File

@ -14,6 +14,7 @@ import {
Switch, Switch,
} from "@mui/material"; } from "@mui/material";
import { useTranslation } from "react-i18next"; import { useTranslation } from "react-i18next";
import { useLiveQuery } from "dexie-react-hooks";
import theme from "./theme"; import theme from "./theme";
import api from "../app/Api"; import api from "../app/Api";
import { randomAlphanumericString, topicUrl, validTopic, validUrl } from "../app/utils"; import { randomAlphanumericString, topicUrl, validTopic, validUrl } from "../app/utils";
@ -28,6 +29,7 @@ import ReserveTopicSelect from "./ReserveTopicSelect";
import { AccountContext } from "./App"; import { AccountContext } from "./App";
import { TopicReservedError, UnauthorizedError } from "../app/errors"; import { TopicReservedError, UnauthorizedError } from "../app/errors";
import { ReserveLimitChip } from "./SubscriptionPopup"; import { ReserveLimitChip } from "./SubscriptionPopup";
import prefs from "../app/Prefs";
const publicBaseUrl = "https://ntfy.sh"; const publicBaseUrl = "https://ntfy.sh";
@ -96,6 +98,8 @@ const SubscribePage = (props) => {
const reserveTopicEnabled = const reserveTopicEnabled =
session.exists() && (account?.role === Role.ADMIN || (account?.role === Role.USER && (account?.stats.reservations_remaining || 0) > 0)); session.exists() && (account?.role === Role.ADMIN || (account?.role === Role.USER && (account?.stats.reservations_remaining || 0) > 0));
const webPushEnabled = useLiveQuery(() => prefs.webPushEnabled());
const handleSubscribe = async () => { const handleSubscribe = async () => {
const user = await userManager.get(baseUrl); // May be undefined const user = await userManager.get(baseUrl); // May be undefined
const username = user ? user.username : t("subscribe_dialog_error_user_anonymous"); const username = user ? user.username : t("subscribe_dialog_error_user_anonymous");
@ -233,12 +237,19 @@ const SubscribePage = (props) => {
inputValue={props.baseUrl} inputValue={props.baseUrl}
onInputChange={updateBaseUrl} onInputChange={updateBaseUrl}
renderInput={(params) => ( renderInput={(params) => (
<TextField <>
{...params} <TextField
placeholder={config.base_url} {...params}
variant="standard" placeholder={config.base_url}
aria-label={t("subscribe_dialog_subscribe_base_url_label")} variant="standard"
/> aria-label={t("subscribe_dialog_subscribe_base_url_label")}
/>
{webPushEnabled && (
<div style={{ width: "100%", color: "#aaa", fontSize: "0.75rem", marginTop: "0.5rem" }}>
{t("subscribe_dialog_subscribe_use_another_background_info")}
</div>
)}
</>
)} )}
/> />
)} )}