3434 <button onclick="scrollBottom()" id="scrollBottom" title="Go to the bottom"><img src="../assets/images/up-arrow.svg" style="height: 20px;"></button>
3535 <form id="message-form">
3636 <input type="text" id="message-input" placeholder="Type your message...">
37+ <input type="file" id="file-upload">
3738 <button type="submit" id="submit">Send</button>
3839 </form>
3940 </div>
4849 <script src="./index.js"></script>
4950 <script>
5051 $('main').hide();
51- const url = "https://g4o2-api.maxhu787.repl.co";
52- // const url = "http://localhost:3000";
52+ // const url = "https://g4o2-api.maxhu787.repl.co";
53+ const url = "http://localhost:3000";
5354 const socket = io(url);
5455 const messages = document.getElementById('messages');
5556 const form = document.getElementById('message-form');
5657 const input = document.getElementById('message-input');
58+ const fileUpload = document.getElementById('file-upload');
5759 const submitBtn = document.getElementById('submit');
5860 const user_id = '<?= $ _SESSION ['user_id ' ] ?> ';
5961 // const user_id = parseInt(sessionStorage.getItem("user_id"));
@@ -175,6 +177,12 @@ function escapeHtml(text) {
175177 chatScroll()
176178 });
177179
180+ socket.on('image-submit', function(imageDetails) {
181+ const image = new Message(imageDetails['message'], imageDetails['message_date'], imageDetails['user_id'], imageDetails['username'], imageDetails['pfp']);
182+ image.appendMessage();
183+ chatScroll()
184+ });
185+
178186 socket.on('message-error', function(err) {
179187 document.location.href = `https://http.cat/${err}`;
180188 })
@@ -191,10 +199,41 @@ function escapeHtml(text) {
191199 }
192200 socket.emit('message-submit', messageDetails);
193201 input.value = '';
194- let noMsgElement = document.getElementById('no-msg');
195- if (noMsgElement && getComputedStyle(noMsgElement).display !== "none") {
196- noMsgElement.style.display = "none";
197- }
202+ // let noMsgElement = document.getElementById('no-msg');
203+ // if (noMsgElement && getComputedStyle(noMsgElement).display !== "none") {
204+ // noMsgElement.style.display = "none";
205+ // }
206+ }
207+ if (fileUpload.value) {
208+ const formData = new FormData();
209+ formData.append('image', fileUpload.files[0]);
210+
211+ fetch(url.concat(`/upload-image`), {
212+ method: 'POST',
213+ body: formData
214+ })
215+ .then(response => {
216+ if (!response.ok) {
217+ throw new Error('Network response was not ok');
218+ }
219+ return response.json();
220+ })
221+ .then(data => {
222+ console.log('Image upload successful:', data);
223+ let date = new Date().toUTCString()
224+ let temp = url.concat('/uploads/')
225+ let message = temp.concat(data['filename'])
226+ imageDetails = {
227+ message: message,
228+ message_date: date,
229+ user_id: user_id
230+ }
231+ socket.emit('image-submit', imageDetails);
232+ })
233+ .catch(error => {
234+ console.error('Error uploading image:', error);
235+ });
236+ fileUpload.value = ''
198237 }
199238 });
200239
0 commit comments