@@ -6,8 +6,8 @@ import Modal from '../Modal';
66import Form from './Form' ;
77import Select from './Select' ;
88import { Icon } from '@iconify/react' ;
9- import axios from 'axios ' ;
10- import { usePage , router } from '@inertiajs/react ' ;
9+ import { usePage } from '@inertiajs/react ' ;
10+ import DataService from '../../services/data-service ' ;
1111
1212const BlockScheduleManager = ( ) => {
1313 const { auth } = usePage ( ) . props ;
@@ -20,24 +20,24 @@ const BlockScheduleManager = () => {
2020 const [ services , setServices ] = useState ( [ ] ) ;
2121 const [ rooms , setRooms ] = useState ( [ ] ) ;
2222 useEffect ( ( ) => {
23- if ( ! auth . user ) {
24- router . visit ( '/login' ) ;
25- return ;
26- }
27-
2823 const fetchData = async ( ) => {
2924 try {
30- const [ blocksRes , utilizationRes , servicesRes , roomsRes ] = await Promise . all ( [
31- axios . get ( '/api/blocks' ) ,
32- axios . get ( '/api/blocks/utilization' ) ,
33- axios . get ( '/api/services' ) ,
34- axios . get ( '/api/rooms' )
25+ const [ blocks , utilization , services ] = await Promise . all ( [
26+ DataService . getBlockTemplates ( ) ,
27+ DataService . getBlockUtilization ( selectedDate . toISOString ( ) . split ( 'T' ) [ 0 ] ) ,
28+ DataService . getServices ( )
3529 ] ) ;
3630
37- setBlocks ( blocksRes . data ) ;
38- setUtilization ( utilizationRes . data ) ;
39- setServices ( servicesRes . data ) ;
40- setRooms ( roomsRes . data ) ;
31+ setBlocks ( blocks ) ;
32+ setUtilization ( utilization ) ;
33+ setServices ( services ) ;
34+ setRooms ( [
35+ { room_id : 1 , name : 'OR-1' } ,
36+ { room_id : 2 , name : 'OR-2' } ,
37+ { room_id : 3 , name : 'OR-3' } ,
38+ { room_id : 4 , name : 'OR-4' } ,
39+ { room_id : 5 , name : 'OR-5' }
40+ ] ) ;
4141 setError ( null ) ;
4242 } catch ( err ) {
4343 console . error ( 'Error fetching data:' , err ) ;
@@ -48,7 +48,7 @@ const BlockScheduleManager = () => {
4848 } ;
4949
5050 fetchData ( ) ;
51- } , [ ] ) ;
51+ } , [ selectedDate ] ) ;
5252
5353 const getBlocksForDate = ( date ) => {
5454 return blocks . filter ( block =>
@@ -80,13 +80,19 @@ const BlockScheduleManager = () => {
8080 const handleSubmit = async ( e ) => {
8181 e . preventDefault ( ) ;
8282 try {
83- await axios . post ( '/api/blocks' , formData ) ;
84- const [ blocksRes , utilizationRes ] = await Promise . all ( [
85- axios . get ( '/api/blocks' ) ,
86- axios . get ( '/api/blocks/utilization' )
87- ] ) ;
88- setBlocks ( blocksRes . data ) ;
89- setUtilization ( utilizationRes . data ) ;
83+ // In mock mode, just update the local state with new block
84+ const newBlock = {
85+ block_id : blocks . length + 1 ,
86+ room_id : formData . room_id ,
87+ service_id : formData . service_id ,
88+ service_name : services . find ( s => s . service_id === formData . service_id ) ?. name ,
89+ block_date : formData . block_date ,
90+ start_time : formData . start_time ,
91+ end_time : formData . end_time ,
92+ title : `${ services . find ( s => s . service_id === formData . service_id ) ?. name } Block`
93+ } ;
94+
95+ setBlocks ( [ ...blocks , newBlock ] ) ;
9096 setShowModal ( false ) ;
9197 setFormData ( {
9298 service_id : '' ,
0 commit comments