// Copyright 2026 OpenObserve Inc. // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU Affero General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU Affero General Public License for more details. // // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see . import { reactive } from "vue"; const defaultObject = { loading: [], config: { splitterModel: 20, lastSplitterPosition: 0, splitterLimit: [0, 40], refreshTimes: [ [ { label: "5 sec", value: 5 }, { label: "1 min", value: 60 }, { label: "1 hr", value: 3600 }, ], [ { label: "10 sec", value: 10 }, { label: "5 min", value: 300 }, { label: "2 hr", value: 7200 }, ], [ { label: "15 sec", value: 15 }, { label: "15 min", value: 900 }, { label: "1 day", value: 86400 }, ], [ { label: "30 sec", value: 30 }, { label: "30 min", value: 1800 }, ], ], }, meta: { resultGrid: { wrapCells: false, rowsPerPage: 150, chartInterval: "1 second", chartKeyFormat: "HH:mm:ss", navigation: { currentRowIndex: 0, }, }, }, data: { parsedQuery: {}, errorMsg: "", errorCode: 0, additionalErrorMsg: "", stream: { logStream: "", sessionStream: "", sessionDataStream: "", selectedStreamFields: [], }, resultGrid: { currentDateTime: new Date(), currentPage: 0, columns: [], size: 150, }, sessions: [], streamResults: [], histogram: {}, editorValue: "", datetime: { startTime: 0, endTime: 0, relativeTimePeriod: "15m", valueType: "relative", }, selectedSession: { start_time: 0, end_time: 0, browser: "", os: "", ip: "", user_email: "", city: "", country: "", session_id: "", timestamp: 0, type: "", time_spent: 0, source: "", }, }, }; let sessionState = reactive(Object.assign({}, defaultObject)); const useSession = () => { const resetSessionState = () => { // delete searchObj.data; sessionState = reactive(Object.assign({}, defaultObject)); }; return { sessionState, resetSessionState }; }; export default useSession;