Add way to create a user notice via config.json (#9559)
							parent
							
								
									985119dcfe
								
							
						
					
					
						commit
						848adfdc10
					
				|  | @ -183,6 +183,12 @@ export interface IConfigOptions { | |||
|         // length per voice chunk in seconds
 | ||||
|         chunk_length?: number; | ||||
|     }; | ||||
| 
 | ||||
|     user_notice?: { | ||||
|         title: string; | ||||
|         description: string; | ||||
|         show_once?: boolean; | ||||
|     }; | ||||
| } | ||||
| 
 | ||||
| export interface ISsoRedirectOptions { | ||||
|  |  | |||
|  | @ -139,6 +139,8 @@ import { isLocalRoom } from '../../utils/localRoom/isLocalRoom'; | |||
| import { SdkContextClass, SDKContext } from '../../contexts/SDKContext'; | ||||
| import { viewUserDeviceSettings } from '../../actions/handlers/viewUserDeviceSettings'; | ||||
| import { VoiceBroadcastResumer } from '../../voice-broadcast'; | ||||
| import GenericToast from "../views/toasts/GenericToast"; | ||||
| import { Linkify } from "../views/elements/Linkify"; | ||||
| 
 | ||||
| // legacy export
 | ||||
| export { default as Views } from "../../Views"; | ||||
|  | @ -1332,6 +1334,28 @@ export default class MatrixChat extends React.PureComponent<IProps, IState> { | |||
|             // check if it has been dismissed before, etc.
 | ||||
|             showMobileGuideToast(); | ||||
|         } | ||||
| 
 | ||||
|         const userNotice = SdkConfig.get("user_notice"); | ||||
|         if (userNotice) { | ||||
|             const key = "user_notice_" + userNotice.title; | ||||
|             if (!userNotice.show_once || !localStorage.getItem(key)) { | ||||
|                 ToastStore.sharedInstance().addOrReplaceToast({ | ||||
|                     key, | ||||
|                     title: userNotice.title, | ||||
|                     props: { | ||||
|                         description: <Linkify>{ userNotice.description }</Linkify>, | ||||
|                         acceptLabel: _t("OK"), | ||||
|                         onAccept: () => { | ||||
|                             ToastStore.sharedInstance().dismissToast(key); | ||||
|                             localStorage.setItem(key, "1"); | ||||
|                         }, | ||||
|                     }, | ||||
|                     component: GenericToast, | ||||
|                     className: "mx_AnalyticsToast", | ||||
|                     priority: 100, | ||||
|                 }); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     private initPosthogAnalyticsToast() { | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Michael Telatynski
						Michael Telatynski