2022-09-29 12:02:41 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								/ *  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									GoToSocial 
							 
						 
					
						
							
								
									
										
										
										
											2023-01-05 12:43:00 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									Copyright  ( C )  2021 - 2023  GoToSocial  Authors  admin @ gotosocial . org 
							 
						 
					
						
							
								
									
										
										
										
											2022-09-29 12:02:41 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									This  program  is  free  software :  you  can  redistribute  it  and / or  modify 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									it  under  the  terms  of  the  GNU  Affero  General  Public  License  as  published  by 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									the  Free  Software  Foundation ,  either  version  3  of  the  License ,  or 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									( at  your  option )  any  later  version . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									This  program  is  distributed  in  the  hope  that  it  will  be  useful , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									but  WITHOUT  ANY  WARRANTY ;  without  even  the  implied  warranty  of 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									MERCHANTABILITY  or  FITNESS  FOR  A  PARTICULAR  PURPOSE .   See  the 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									GNU  Affero  General  Public  License  for  more  details . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									You  should  have  received  a  copy  of  the  GNU  Affero  General  Public  License 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									along  with  this  program .   If  not ,  see  < http : //www.gnu.org/licenses/>.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								* /  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								"use strict" ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								const  React  =  require ( "react" ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-01-18 14:45:14 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								const  query  =  require ( "../lib/query" ) ;  
						 
					
						
							
								
									
										
										
										
											2022-09-29 12:02:41 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-01-18 14:45:14 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								const  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									useTextInput , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									useFileInput 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  =  require ( "../lib/form" ) ;  
						 
					
						
							
								
									
										
										
										
											2022-09-29 12:02:41 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-01-18 14:45:14 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								const  useFormSubmit  =  require ( "../lib/form/submit" ) ;  
						 
					
						
							
								
									
										
										
										
											2022-09-29 12:02:41 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								const  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									TextInput , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									TextArea , 
							 
						 
					
						
							
								
									
										
										
										
											2023-01-18 14:45:14 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									FileInput 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  =  require ( "../components/form/inputs" ) ;  
						 
					
						
							
								
									
										
										
										
											2022-09-29 12:02:41 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-01-18 14:45:14 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								const  FormWithData  =  require ( "../lib/form/form-with-data" ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								const  MutationButton  =  require ( "../components/form/mutation-button" ) ;  
						 
					
						
							
								
									
										
										
										
											2022-09-29 12:02:41 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-01-18 14:45:14 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								module . exports  =  function  AdminSettings ( )  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									return  ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< FormWithData 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											dataQuery = { query . useInstanceQuery } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											DataForm = { AdminSettingsForm } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										/ > 
							 
						 
					
						
							
								
									
										
										
										
											2022-09-29 12:02:41 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									) ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-01-18 14:45:14 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								} ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								function  AdminSettingsForm ( {  data :  instance  } )  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									const  form  =  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										title :  useTextInput ( "title" ,  {  defaultValue :  instance . title  } ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										thumbnail :  useFileInput ( "thumbnail" ,  {  withPreview :  true  } ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										thumbnailDesc :  useTextInput ( "thumbnail_description" ,  {  defaultValue :  instance . thumbnail _description  } ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										shortDesc :  useTextInput ( "short_description" ,  {  defaultValue :  instance . short _description  } ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										description :  useTextInput ( "description" ,  {  defaultValue :  instance . description  } ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										contactUser :  useTextInput ( "contact_username" ,  {  defaultValue :  instance . contact _account ? . username  } ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										contactEmail :  useTextInput ( "contact_email" ,  {  defaultValue :  instance . email  } ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										terms :  useTextInput ( "terms" ,  {  defaultValue :  instance . terms  } ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									const  [ submitForm ,  result ]  =  useFormSubmit ( form ,  query . useUpdateInstanceMutation ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-09-29 12:02:41 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									return  ( 
							 
						 
					
						
							
								
									
										
										
										
											2023-01-18 14:45:14 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										< form  onSubmit = { submitForm } > 
							 
						 
					
						
							
								
									
										
										
										
											2022-09-29 12:02:41 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											< h1 > Instance  Settings < / h 1 > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											< TextInput 
							 
						 
					
						
							
								
									
										
										
										
											2023-01-18 14:45:14 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												field = { form . title } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												label = "Title" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												placeholder = "My GoToSocial instance" 
							 
						 
					
						
							
								
									
										
										
										
											2022-09-29 12:02:41 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											/ > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-11-08 18:11:06 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											< div  className = "file-upload" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												< h3 > Instance  thumbnail < / h 3 > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												< div > 
							 
						 
					
						
							
								
									
										
										
										
											2023-01-18 14:45:14 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
													< img  className = "preview avatar"  src = { form . thumbnail . previewValue  ? ?  instance . thumbnail }  alt = { form . thumbnailDesc . value  ? ?  ( instance . thumbnail  ?  ` Thumbnail image for the instance `  :  "No instance thumbnail image set" ) }  / > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													< FileInput 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														field = { form . thumbnail } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														accept = "image/*" 
							 
						 
					
						
							
								
									
										
										
										
											2022-11-08 18:11:06 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
													/ > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												< / d i v > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											< / d i v > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											< TextInput 
							 
						 
					
						
							
								
									
										
										
										
											2023-01-18 14:45:14 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												field = { form . thumbnailDesc } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												label = "Instance thumbnail description" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												placeholder = "A cute drawing of a smiling sloth." 
							 
						 
					
						
							
								
									
										
										
										
											2022-11-08 18:11:06 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											/ > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-09-29 12:02:41 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											< TextArea 
							 
						 
					
						
							
								
									
										
										
										
											2023-01-18 14:45:14 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												field = { form . shortDesc } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												label = "Short description" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												placeholder = "A small testing instance for the GoToSocial alpha software." 
							 
						 
					
						
							
								
									
										
										
										
											2022-09-29 12:02:41 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											/ > 
							 
						 
					
						
							
								
									
										
										
										
											2023-01-18 14:45:14 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-09-29 12:02:41 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											< TextArea 
							 
						 
					
						
							
								
									
										
										
										
											2023-01-18 14:45:14 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												field = { form . description } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												label = "Full description" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												placeholder = "A small testing instance for the GoToSocial alpha software. Just trying it out, my main instance is https://example.com" 
							 
						 
					
						
							
								
									
										
										
										
											2022-09-29 12:02:41 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											/ > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											< TextInput 
							 
						 
					
						
							
								
									
										
										
										
											2023-01-18 14:45:14 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												field = { form . contactUser } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												label = "Contact user (local account username)" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												placeholder = "admin" 
							 
						 
					
						
							
								
									
										
										
										
											2022-09-29 12:02:41 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											/ > 
							 
						 
					
						
							
								
									
										
										
										
											2023-01-18 14:45:14 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-09-29 12:02:41 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											< TextInput 
							 
						 
					
						
							
								
									
										
										
										
											2023-01-18 14:45:14 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												field = { form . contactEmail } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												label = "Contact email" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												placeholder = "admin@example.com" 
							 
						 
					
						
							
								
									
										
										
										
											2022-09-29 12:02:41 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											/ > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											< TextArea 
							 
						 
					
						
							
								
									
										
										
										
											2023-01-18 14:45:14 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												field = { form . terms } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												label = "Terms & Conditions" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												placeholder = "" 
							 
						 
					
						
							
								
									
										
										
										
											2022-09-29 12:02:41 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											/ > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-01-18 14:45:14 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											< MutationButton  label = "Save"  result = { result }  / > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< / f o r m > 
							 
						 
					
						
							
								
									
										
										
										
											2022-09-29 12:02:41 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									) ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-01-18 14:45:14 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}