1
1
document . getElementById ( 'content-form' ) . addEventListener ( 'submit' , ( e ) => {
2
- e . preventDefault ( ) ;
3
- const product = document . getElementById ( 'product' ) . value ;
2
+ e . preventDefault ( ) ;
3
+ const product = document . getElementById ( 'product' ) . value ;
4
4
5
- // Show loading spinner
6
- document . getElementById ( 'loading' ) . classList . remove ( 'd-none' ) ;
5
+ // Show loading spinner
6
+ document . getElementById ( 'loading' ) . classList . remove ( 'd-none' ) ;
7
7
8
- async function generateText ( ) {
9
- try {
10
- const response = await fetch ( '/generate-content' , {
11
- method : 'POST' ,
12
- headers : { 'Content-Type' : 'application/json' } ,
13
- body : JSON . stringify ( { product : product , type : 'text' } ) ,
14
- } ) ;
15
- const { text } = await response . json ( ) ;
16
- document . getElementById ( 'generated-text' ) . innerText = text ;
17
- document . getElementById ( 'text-title' ) . classList . remove ( 'd-none' ) ;
18
- } catch ( error ) {
19
- console . error ( 'Error in generating text:' , error ) ;
8
+ async function generateText ( ) {
9
+ try {
10
+ const response = await fetch ( '/generate-content' , {
11
+ method : 'POST' ,
12
+ headers : {
13
+ 'Content-Type' : 'application/json'
14
+ } ,
15
+ body : JSON . stringify ( {
16
+ product : product ,
17
+ type : 'text'
18
+ } ) ,
19
+ } ) ;
20
+ const {
21
+ text
22
+ } = await response . json ( ) ;
23
+ document . getElementById ( 'generated-text' ) . innerText = text ;
24
+ document . getElementById ( 'text-title' ) . classList . remove ( 'd-none' ) ;
25
+ } catch ( error ) {
26
+ console . error ( 'Error in generating text:' , error ) ;
27
+ }
20
28
}
21
- }
22
29
23
- async function generateImage ( ) {
24
- try {
25
- const response = await fetch ( '/generate-content' , {
26
- method : 'POST' ,
27
- headers : { 'Content-Type' : 'application/json' } ,
28
- body : JSON . stringify ( { product : product , type : 'image' } ) ,
29
- } ) ;
30
- const { imageData } = await response . json ( ) ;
31
- const imageDataUrl = `data:image/png;base64,${ imageData } ` ;
32
- const imageElement = document . getElementById ( 'generated-image' ) ;
33
- imageElement . src = imageDataUrl ;
34
- imageElement . classList . remove ( 'd-none' ) ;
35
- document . getElementById ( 'image-title' ) . classList . remove ( 'd-none' ) ;
36
- } catch ( error ) {
37
- console . error ( 'Error in generating image:' , error ) ;
30
+ async function generateImage ( ) {
31
+ try {
32
+ const response = await fetch ( '/generate-content' , {
33
+ method : 'POST' ,
34
+ headers : {
35
+ 'Content-Type' : 'application/json'
36
+ } ,
37
+ body : JSON . stringify ( {
38
+ product : product ,
39
+ type : 'image'
40
+ } ) ,
41
+ } ) ;
42
+ const {
43
+ imageData
44
+ } = await response . json ( ) ;
45
+ const imageDataUrl = `data:image/png;base64,${ imageData } ` ;
46
+ const imageElement = document . getElementById ( 'generated-image' ) ;
47
+ imageElement . src = imageDataUrl ;
48
+ imageElement . classList . remove ( 'd-none' ) ;
49
+ document . getElementById ( 'image-title' ) . classList . remove ( 'd-none' ) ;
50
+ } catch ( error ) {
51
+ console . error ( 'Error in generating image:' , error ) ;
52
+ }
38
53
}
39
- }
40
54
41
- async function generateAudio ( ) {
42
- try {
43
- const response = await fetch ( '/generate-content' , {
44
- method : 'POST' ,
45
- headers : { 'Content-Type' : 'application/json' } ,
46
- body : JSON . stringify ( { product : product , type : 'audio' } ) ,
47
- } ) ;
48
- const { audioData } = await response . json ( ) ;
49
- const audioDataUrl = `data:audio/mpeg;base64,${ audioData } ` ;
50
- const audioElement = document . getElementById ( 'generated-audio' ) ;
51
- audioElement . src = audioDataUrl ;
52
- audioElement . classList . remove ( 'd-none' ) ;
53
- document . getElementById ( 'audio-title' ) . classList . remove ( 'd-none' ) ;
54
- } catch ( error ) {
55
- console . error ( 'Error in generating audio:' , error ) ;
55
+ async function generateAudio ( ) {
56
+ try {
57
+ const response = await fetch ( '/generate-content' , {
58
+ method : 'POST' ,
59
+ headers : {
60
+ 'Content-Type' : 'application/json'
61
+ } ,
62
+ body : JSON . stringify ( {
63
+ product : product ,
64
+ type : 'audio'
65
+ } ) ,
66
+ } ) ;
67
+ const {
68
+ audioData
69
+ } = await response . json ( ) ;
70
+ const audioDataUrl = `data:audio/mpeg;base64,${ audioData } ` ;
71
+ const audioElement = document . getElementById ( 'generated-audio' ) ;
72
+ audioElement . src = audioDataUrl ;
73
+ audioElement . classList . remove ( 'd-none' ) ;
74
+ document . getElementById ( 'audio-title' ) . classList . remove ( 'd-none' ) ;
75
+ } catch ( error ) {
76
+ console . error ( 'Error in generating audio:' , error ) ;
77
+ }
56
78
}
57
- }
58
79
59
- // Call the generate functions separately without waiting for each one to finish
60
- Promise . all ( [
61
- generateText ( ) . catch ( ( error ) => {
62
- console . error ( 'Error in generating text:' , error ) ;
63
- } ) ,
64
- generateImage ( ) . catch ( ( error ) => {
65
- console . error ( 'Error in generating image:' , error ) ;
66
- } ) ,
67
- generateAudio ( ) . catch ( ( error ) => {
68
- console . error ( 'Error in generating audio:' , error ) ;
69
- } ) ,
70
- ] ) . finally ( ( ) => {
71
- // Hide loading spinner
72
- document . getElementById ( 'loading' ) . classList . add ( 'd-none' ) ;
73
- } ) ;
74
- } ) ;
80
+ // Call the generate functions separately without waiting for each one to finish
81
+ Promise . all ( [
82
+ generateText ( ) . catch ( ( error ) => {
83
+ console . error ( 'Error in generating text:' , error ) ;
84
+ } ) ,
85
+ generateImage ( ) . catch ( ( error ) => {
86
+ console . error ( 'Error in generating image:' , error ) ;
87
+ } ) ,
88
+ generateAudio ( ) . catch ( ( error ) => {
89
+ console . error ( 'Error in generating audio:' , error ) ;
90
+ } ) ,
91
+ ] ) . finally ( ( ) => {
92
+ // Hide loading spinner
93
+ document . getElementById ( 'loading' ) . classList . add ( 'd-none' ) ;
94
+ } ) ;
95
+ } ) ;
0 commit comments