@@ -68,22 +68,24 @@ export function PasteBin() {
6868
6969 const [ isModalOpen , setModalOpen ] = useState ( false )
7070 const [ modalErrMsg , setModalErrMsg ] = useState ( "" )
71+ const [ modalErrTitle , setModalErrTitle ] = useState ( "" )
7172
7273 const [ darkModeSelect , setDarkModeSelect ] = useState < DarkMode > ( defaultDarkMode ( ) )
7374
7475 // when matchMedia not available (e.g. in tests), set to light mode
7576 const systemDark = window . matchMedia ? window . matchMedia ( "(prefers-color-scheme: dark)" ) . matches : false
7677 const isDark = darkModeSelect === "system" ? systemDark : darkModeSelect === "dark"
7778
78- function showErrorMsg ( err : string ) {
79+ function showErrorMsg ( err : string , title : string ) {
7980 setModalErrMsg ( err )
81+ setModalErrTitle ( title )
8082 setModalOpen ( true )
8183 }
8284
83- async function reportResponseError ( resp : Response ) {
85+ async function reportResponseError ( resp : Response , title : string ) {
8486 const statusText = resp . statusText === "error" ? "Unknown error" : resp . statusText
8587 const errText = ( await resp . text ( ) ) || statusText
86- reportError ( errText )
88+ showErrorMsg ( errText , title )
8789 }
8890
8991 const errorModal = (
@@ -98,7 +100,7 @@ export function PasteBin() {
98100 } }
99101 >
100102 < ModalContent >
101- < ModalHeader className = "flex flex-col gap-1" > Error </ ModalHeader >
103+ < ModalHeader className = "flex flex-col gap-1" > { modalErrTitle } </ ModalHeader >
102104 < ModalBody >
103105 < p > { modalErrMsg } </ p >
104106 </ ModalBody >
@@ -130,7 +132,7 @@ export function PasteBin() {
130132
131133 const resp = await fetch ( pasteUrl )
132134 if ( ! resp . ok ) {
133- await reportResponseError ( resp )
135+ await reportResponseError ( resp , `Error on fetching ${ pasteUrl } ` )
134136 return
135137 }
136138 const contentType = resp . headers . get ( "Content-Type" )
@@ -176,13 +178,13 @@ export function PasteBin() {
176178 const fd = new FormData ( )
177179 if ( editKind === "file" ) {
178180 if ( uploadFile === null ) {
179- showErrorMsg ( "No file selected" )
181+ showErrorMsg ( "No file selected" , "Error on preparing upload" )
180182 return
181183 }
182184 fd . append ( "c" , uploadFile )
183185 } else {
184186 if ( pasteEdit . length === 0 ) {
185- showErrorMsg ( "Empty paste" )
187+ showErrorMsg ( "Empty paste" , "Error on preparing upload" )
186188 return
187189 }
188190 fd . append ( "c" , pasteEdit )
@@ -211,10 +213,10 @@ export function PasteBin() {
211213 const respParsed = JSON . parse ( await resp . text ( ) ) as PasteResponse
212214 setPasteResponse ( respParsed )
213215 } else {
214- await reportResponseError ( resp )
216+ await reportResponseError ( resp , `Error ${ resp . status } ` )
215217 }
216218 } catch ( e ) {
217- showErrorMsg ( ( e as Error ) . toString ( ) )
219+ showErrorMsg ( ( e as Error ) . toString ( ) , "Error on uploading paste" )
218220 console . error ( e )
219221 }
220222 }
@@ -227,9 +229,10 @@ export function PasteBin() {
227229 if ( resp . ok ) {
228230 setPasteResponse ( null )
229231 } else {
230- await reportResponseError ( resp )
232+ await reportResponseError ( resp , `Error ${ resp . status } ` )
231233 }
232234 } catch ( e ) {
235+ showErrorMsg ( ( e as Error ) . message , "Error on deleting paste" )
233236 console . error ( e )
234237 }
235238 }
0 commit comments