refactor: cleanup default params in error handlers
[e-mobility-charging-stations-simulator.git] / ui / web / src / components / charging-stations / CSConnector.vue
index 8b577f580661d2eb6dd171f1973f76b7eea30bba..9bfeae6de04620968bfd037e21ba4b1d5c9b8d9a 100644 (file)
@@ -9,15 +9,30 @@
       {{ atgStatus?.start === true ? 'Yes' : 'No' }}
     </td>
     <td class="connectors-table__column">
-      <Button
-        @click="
-          $router.push({
-            name: 'start-transaction',
-            params: { hashId, chargingStationId, connectorId }
-          })
+      <ToggleButton
+        :id="`${hashId}-${connectorId}-start-transaction`"
+        :shared="true"
+        :on="
+          () => {
+            $router.push({
+              name: 'start-transaction',
+              params: { hashId, chargingStationId, connectorId }
+            })
+          }
+        "
+        :off="
+          () => {
+            $router.push({ name: 'charging-stations' })
+          }
+        "
+        @clicked="
+          () => {
+            $emit('need-refresh')
+          }
         "
-        >Start Transaction</Button
       >
+        Start Transaction
+      </ToggleButton>
       <Button @click="stopTransaction()">Stop Transaction</Button>
       <Button @click="startAutomaticTransactionGenerator()">Start ATG</Button>
       <Button @click="stopAutomaticTransactionGenerator()">Stop ATG</Button>
 </template>
 
 <script setup lang="ts">
-import { getCurrentInstance } from 'vue'
 import { useToast } from 'vue-toast-notification'
+
 import Button from '@/components/buttons/Button.vue'
+import ToggleButton from '@/components/buttons/ToggleButton.vue'
+import { useUIClient } from '@/composables'
 import type { ConnectorStatus, Status } from '@/types'
 
 const props = defineProps<{
@@ -39,11 +56,13 @@ const props = defineProps<{
   atgStatus?: Status
 }>()
 
-const uiClient = getCurrentInstance()?.appContext.config.globalProperties.$uiClient
+const $emit = defineEmits(['need-refresh'])
+
+const uiClient = useUIClient()
 
 const $toast = useToast()
 
-function stopTransaction(): void {
+const stopTransaction = (): void => {
   uiClient
     .stopTransaction(props.hashId, props.connector.transactionId)
     .then(() => {
@@ -54,7 +73,7 @@ function stopTransaction(): void {
       console.error('Error at stopping transaction:', error)
     })
 }
-function startAutomaticTransactionGenerator(): void {
+const startAutomaticTransactionGenerator = (): void => {
   uiClient
     .startAutomaticTransactionGenerator(props.hashId, props.connectorId)
     .then(() => {
@@ -65,7 +84,7 @@ function startAutomaticTransactionGenerator(): void {
       console.error('Error at starting automatic transaction generator:', error)
     })
 }
-function stopAutomaticTransactionGenerator(): void {
+const stopAutomaticTransactionGenerator = (): void => {
   uiClient
     .stopAutomaticTransactionGenerator(props.hashId, props.connectorId)
     .then(() => {