Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
292137f
Merge pull request #54 from pmidc-digit/ramesh-frontend
anujkit Feb 20, 2026
b3c0b9d
Merge pull request #57 from pmidc-digit/integraated_bill_only
anujkit Feb 20, 2026
8fa0882
Merge pull request #59 from pmidc-digit/integraated_bill_only
anujkit Feb 20, 2026
0fb4073
Merge pull request #60 from pmidc-digit/ramesh-frontend
anujkit Feb 22, 2026
c7d0f88
Merge pull request #61 from pmidc-digit/ramesh-frontend
anujkit Feb 22, 2026
e492528
Merge pull request #63 from pmidc-digit/ramesh-frontend
anujkit Feb 22, 2026
9f21bdd
Merge pull request #64 from pmidc-digit/ramesh-frontend
anujkit Feb 22, 2026
a591100
PI-20633_Existing Pid not showing old pt id instead showing PTi d
anujkit Feb 23, 2026
a820841
Merge pull request #68 from pmidc-digit/PI-20633_anuj
anujkit Feb 23, 2026
c8141d7
PI-20633 remove console log
anujkit Feb 23, 2026
7c0fb90
Merge pull request #69 from pmidc-digit/PI-20633_anuj
anujkit Feb 23, 2026
9fab1ed
qr code
anujkit Feb 23, 2026
fcadddc
Merge pull request #72 from pmidc-digit/ramesh-frontend
anujkit Feb 25, 2026
b80188a
proprty-qr-code
anujkit Feb 26, 2026
804bfed
PI-20632- Workflow added by backend team , fix from frontend-side
AashishgKpmg4 Feb 26, 2026
7c99e8b
property QR Code
anujkit Feb 27, 2026
3c1a446
PI-20685 Needed Renewal of year 25-26 and new application of year 26-27
anujkit Mar 2, 2026
61fd79e
mono bhasini code
anujkit Feb 26, 2026
2855aa6
PI-20678 Implement bhashini in Mono-UI
anujkit Feb 27, 2026
751de22
Merge pull request #78 from pmidc-digit/ramesh-frontend
anujkit Mar 2, 2026
1e9d34d
Merge branch 'monoui_dev_loc' of https://github.com/pmidc-digit/front…
AashishgKpmg4 Mar 2, 2026
13540d2
Merge pull request #82 from pmidc-digit/monoui_dev_loc
anujkit Mar 2, 2026
b511265
remove logs and add authorization in constant
anujkit Mar 2, 2026
7917a52
Merge pull request #81 from pmidc-digit/otp-common-screen
narinderkpmg Mar 2, 2026
6077051
add css file
anujkit Mar 2, 2026
5286674
Merge branch 'mono_ui_dev' of https://github.com/pmidc-digit/frontend…
anujkit Mar 2, 2026
fbac77a
Merge pull request #86 from pmidc-digit/ramesh-frontend
anujkit Mar 2, 2026
ac2a865
new change common screen
anujkit Mar 3, 2026
ed9b161
add common
anujkit Mar 3, 2026
1e5d670
PI-20750 Put a msg in employee login for both mono-ui and digit-ui
anujkit Mar 3, 2026
53909c8
Updated Related Sewerage Connectio text field WS and SW
erramesh000 Mar 6, 2026
bcad350
Fixed issues NONRESIDENTIAL.INSTITUTIONAL
erramesh000 Mar 6, 2026
056bbdd
Merge pull request #91 from pmidc-digit/ramesh-frontend
anujkit Mar 6, 2026
9dec78f
Update Bulkmeter Screen
erramesh000 Mar 6, 2026
d32b764
Fixed issues lastReadingDate
erramesh000 Mar 9, 2026
cbce9bf
Merge pull request #92 from pmidc-digit/ramesh-frontend
narinderkpmg Mar 9, 2026
4b106b9
add egov-pdf code
anujkit Mar 10, 2026
b91eb46
Disable search by mobile number citizen side PI-20837
erramesh000 Mar 11, 2026
b238462
Merge branch 'mono_ui_dev' into pmidc_mono_ui
anujkit Mar 11, 2026
8642de4
Updated employee digit url
erramesh000 Mar 12, 2026
1b62ee0
Remove alert text One-Time Settlement for Property citizen Side
erramesh000 Mar 13, 2026
15490ef
Merge branch 'mono_ui_prod' into pmidc_mono_ui
erramesh000 Mar 13, 2026
9531ed8
Fixed related SW connection field issues
erramesh000 Mar 20, 2026
149bfab
Updated Bulkmeter screen
erramesh000 Apr 7, 2026
04d5342
Merge branch 'mono_ui_prod' into pmidc_mono_ui
erramesh000 Apr 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions web/egov-common-screen/.env
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
VITE_API_HOST=https://mseva-dev.lgpunjab.gov.in
8 changes: 5 additions & 3 deletions web/egov-common-screen/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
"name": "commonscreen",
"private": true,
"version": "0.0.0",
"homepage": "https://mseva-uat.lgpunjab.gov.in/common/",
"proxy": "https://mseva-uat.lgpunjab.gov.in",
"homepage": "https://mseva-dev.lgpunjab.gov.in/common/",
"proxy": "https://mseva-dev.lgpunjab.gov.in",
"type": "module",
"scripts": {
"dev": "vite",
Expand All @@ -12,8 +12,10 @@
"preview": "vite preview"
},
"dependencies": {
"axios": "^1.13.5",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-hot-toast": "^2.6.0",
"react-router-dom": "^7.1.3"
},
"devDependencies": {
Expand All @@ -31,4 +33,4 @@
"react-faq-component": "^1.3.4",
"vite": "^6.0.5"
}
}
}
50 changes: 40 additions & 10 deletions web/egov-common-screen/src/App.jsx
Original file line number Diff line number Diff line change
@@ -1,27 +1,57 @@
import { useState } from 'react'
import { useState, } from 'react'
import Card from './components/Card'
import Header from './components/Header'
import Faq from './components/Faqs'
import Footer from './components/Footer'
import Privacy from './components/Privacy'
import Impersonation from './components/Impersonation'
import PropertyQRData from './components/propertyQRData'
import DisplayPropertyRecord from './components/propertyQRData/displayPropertyRecord'
import './App.css'
import { BrowserRouter, Routes, Route } from "react-router-dom";
import PrivateRoute from './utils/privateRoute'
import { Toaster } from 'react-hot-toast'
import { BrowserRouter, Routes, Route, useLocation } from "react-router-dom";
function App() {
const Layout = ({ children }) => {
const location = useLocation();

const hideHeaderFooter = location.pathname === "/propertyQRData" || location.pathname === "/displayPropertyRecord";

return (
<>
{!hideHeaderFooter && <Header />}
{children}
{!hideHeaderFooter && <Footer />}
</>
);
};

return (
<>
<Header />

{/* //basename="/common" */}
<BrowserRouter basename="/common">
<Routes>
<Route path="/" element={<Card />} />
<Route path="/privacy" element={<Privacy />} />
<Route path="/impersonation" element={<Impersonation />} />
<Route path="*" element={<Card />} />
</Routes>


<Layout>
<Routes>
<Route path="/" element={<Card />} />
<Route path="/privacy" element={<Privacy />} />
<Route path="/impersonation" element={<Impersonation />} />
<Route path="/propertyQRData" element={<PropertyQRData />} />
<Route
path="/displayPropertyRecord"
element={
<PrivateRoute>
<DisplayPropertyRecord />
</PrivateRoute>
}
/>
<Route path="*" element={<Card />} />
</Routes>
</Layout>
{/* ✅ ADD TOASTER HERE */}
<Toaster position="bottom-center" />
</BrowserRouter>
{/* <Card />
<center ><p style={{
Expand All @@ -42,7 +72,7 @@ function App() {
}}>
</div>
<Faq /> */}
<Footer />

</>
)
}
Expand Down
4 changes: 2 additions & 2 deletions web/egov-common-screen/src/components/Header/index.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ export default function Header() {
const hostname = typeof window !== "undefined" ? window.location.hostname : "";

const baseUrl = `https://${hostname}/digit-ui`;
//const baseUrlMseva = `https://${hostname}`;
const baseUrlMseva = `https://${hostname}`;
return (
<>
<div>
Expand Down Expand Up @@ -45,7 +45,7 @@ export default function Header() {
</div>
<div className="col-sm-12 col-md-6">
<div className="rightharder">
<a href={`${baseUrl}/employee`}target="_blank">
<a href={`${baseUrlMseva}/employee`} target="_blank">
Employee Login
</a>
{" | "}
Expand Down
44 changes: 44 additions & 0 deletions web/egov-common-screen/src/components/propertyQRData/api.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
import axios from "axios";
const isDev = import.meta.env.DEV;
const API = axios.create({
baseURL: isDev ? "" : import.meta.env.VITE_API_HOST,
headers: {
"Content-Type": "application/json",
},
});

// Function to generate RequestInfo
const generateRequestInfo = () => {
return {
apiId: "Rainmaker",
ver: ".01",
ts: Date.now(),
action: "token",
did: "1",
key: "",
msgId: `${Date.now()}|en_IN`,
authToken: localStorage.getItem("authToken") || "",
};
};

// Request Interceptor
API.interceptors.request.use(
(config) => {
// Only attach for POST / PUT / PATCH
if (
config.method === "post" ||
config.method === "put" ||
config.method === "patch"
) {
config.data = {
RequestInfo: generateRequestInfo(),
...config.data,
};
}

return config;
},
(error) => Promise.reject(error)
);

export default API;
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
export const statetenantId = 'pb'
export const AUTHORIZATION_TOKEN = "Basic ZWdvdi11c2VyLWNsaWVudDplZ292LXVzZXItc2VjcmV0";
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
import { useSearchParams } from 'react-router-dom';
import { useEffect, useState } from 'react';
import { searchPropertyBySurvey, getAddressArray } from "./function"
const DisplayPropertyRecord = () => {
const [missingParams, setMissingParams] = useState(false);
const [searchParams] = useSearchParams();
const [propertyData, setPropertyData] = useState([]);
// Extract date from query parameters
const surveyID = searchParams.get('surveyid');
const tenantId = searchParams.get('tenantid');
const mobileNumber = searchParams.get('mobileno');
useEffect(() => {
if (!surveyID || !tenantId || !mobileNumber) {
if (!errorShown.current) { // Show error only once
showError("Please scan the QR code again");
errorShown.current = true;
}
setMissingParams(true);
return;
}

const fetchProp = async () => {
try {
const data = await searchPropertyBySurvey({ tenantId, surveyId: surveyID });
//console.log("data",data)
setPropertyData(data?.Properties || []);

} catch (err) {
console.error("API Failed:", err);
}
};

fetchProp();
}, [surveyID, tenantId, mobileNumber]);
// console.log("propertyData", propertyData)
const editPropertyurl = (propertyID, tenantid)=>{
debugger
let url = `/citizen/property-tax/assessment-form?assessmentId=0&purpose=update&propertyId=${propertyID}&tenantId=${tenantid}`;
window.location.replace(url);
}
return (
<div className="otp-page">
{missingParams ? (
<div className="otp-card">
<h2 className="otp-title">Invalid QR Code</h2>
<p className="otp-subtext">Please scan a valid QR code to proceed</p>
</div>
) : (
<div className="property_card-container">
{propertyData.length === 0 ? (
<p>No properties found</p>
) : (
propertyData.map((prop, idx) => (
<div className="property-card" key = {prop?.id}>
<div className="property-id">
Property ID: {prop?.propertyId}
</div>

<div className="property-row">
<span className="property-label">Owner:</span>
<span className="property-value">{prop?.owners[0]?.name || 'NA'}</span>
</div>

<div className="property-row">
<span className="property-label">Guardian:</span>
<span className="property-value">{prop?.owners[0]?.fatherOrHusbandName || 'NA'}</span>
</div>

<div className="property-address">
{getAddressArray(prop.address)}
</div>

<div
className={`status-badge ${prop?.status === "ACTIVE"
? "status-active"
: "status-inworkflow"
}`}
>
{prop?.status}
</div>

<button className="property-btn" onClick={()=>editPropertyurl(prop?.propertyId, prop?.tenantId)}>View</button>
</div>
))
)}
</div>
)}
</div>
);
}

export default DisplayPropertyRecord;
Loading