Compare commits

...

2 commits

Author SHA1 Message Date
Maarten
75a22b7b52 Move json renderer 2024-11-25 19:38:17 +01:00
Maarten
f41db67663 Refactor loading vue app 2024-11-25 19:38:04 +01:00
5 changed files with 24 additions and 22 deletions

View file

@ -15,32 +15,33 @@ const results = ref( {} );
/** /**
* Load subnet data based on input * Load subnet data based on input
*/ */
const getSubnetData = () => { const getSubnetData = async () => {
// Enable loading icon try {
isLoading.value = true; // Enable loading state
isLoading.value = true;
// Create post data // Prepare request payload
const postData = new FormData(); const postData = new FormData();
postData.append( 'subnet', subnet.value ); postData.append( 'subnet', subnet.value );
// Send request // Send request and handle response
axios.post( '/api/subnet', postData ).then( (response) => { const response = await axios.post( '/api/subnet', postData );
const { data } = response; const { data } = response;
// Load new block // Update results and UI state
isLoading.value = false;
hasResults.value = true;
results.value = data.result; results.value = data.result;
} ).catch( (error) => { hasResults.value = true;
isLoading.value = false; } catch (error) {
// Extract and show error message
// Show error message const errorMessage = error.response?.data?.message || 'Something went wrong.';
const errorMessage = error.response.data.message || 'Something went wrong.';
$toast.error(errorMessage, { $toast.error(errorMessage, {
position: 'top', position: 'top',
duration: 1500, duration: 1500,
}); });
} ); } finally {
// Reset loading state
isLoading.value = false;
}
} }
/** /**

View file

@ -4,7 +4,7 @@ import ToastPlugin from 'vue-toast-notification';
import 'vue-toast-notification/dist/theme-default.css'; import 'vue-toast-notification/dist/theme-default.css';
// Import components // Import components
import Subnet from '@app/Subnet.vue'; import Subnet from '@scripts/app/Subnet.vue';
// Initialize vue app // Initialize vue app
function initializeApp(element: string, component: any): void { function initializeApp(element: string, component: any): void {

View file

@ -2,9 +2,9 @@
namespace Core\Http; namespace Core\Http;
use Core\View\JsonRender;
use Core\View\Render; use Core\View\Render;
use Core\View\Render\HtmlRender; use Core\View\Render\HtmlRender;
use Core\View\Render\JsonRender;
class Response class Response
{ {

View file

@ -1,6 +1,8 @@
<?php <?php
namespace Core\View; namespace Core\View\Render;
use Core\View\Render;
class JsonRender extends Render class JsonRender extends Render
{ {

View file

@ -23,8 +23,7 @@ export default defineConfig({
resolve: { resolve: {
alias: { alias: {
'@styles': path.resolve('resources/styles'), '@styles': path.resolve('resources/styles'),
'@scripts': path.resolve('resources/scripts'), '@scripts': path.resolve('resources/scripts')
'@app': path.resolve('resources/scripts/app')
}, },
}, },
css: { css: {