@islom929/react-eimzo 0.3.2 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @islom929/react-eimzo
2
2
 
3
- Headless E-IMZO digital signature integration for React. No UI includedbring your own components.
3
+ React hook for E-IMZO digital signatures. Simple API, zero UI dependenciesworks with any component library.
4
4
 
5
5
  ## Install
6
6
 
@@ -20,10 +20,7 @@ import { EimzoProvider } from '@islom929/react-eimzo'
20
20
  function App() {
21
21
  return (
22
22
  <EimzoProvider
23
- apiKeys={[
24
- 'yourdomain.uz', 'YOUR_PRODUCTION_API_KEY_HERE',
25
- 'test.yourdomain.uz', 'YOUR_TEST_API_KEY_HERE',
26
- ]}
23
+ apiKeys={['yourdomain.uz', 'YOUR_API_KEY_HERE']}
27
24
  >
28
25
  <YourApp />
29
26
  </EimzoProvider>
@@ -130,15 +127,11 @@ function PfxSign() {
130
127
 
131
128
  ### Sign with tokens
132
129
 
133
- No certificate selection needed. Pass device type directly.
130
+ No certificate selection needed. Pass device type directly. Device status is checked automatically on mount.
134
131
 
135
132
  ```tsx
136
133
  function TokenSign() {
137
- const { sign, deviceStatus, loadKeys, isInstalled, isLoading } = useEimzo()
138
-
139
- useEffect(() => {
140
- if (isInstalled) loadKeys()
141
- }, [isInstalled])
134
+ const { sign, deviceStatus, isLoading } = useEimzo()
142
135
 
143
136
  const handleTokenSign = (device: 'idcard' | 'baikey' | 'ckc') => {
144
137
  sign({
package/dist/index.cjs CHANGED
@@ -814,24 +814,29 @@ function EimzoProvider({ apiKeys, children }) {
814
814
  baikey: false,
815
815
  ckc: false
816
816
  });
817
+ const checkDevices = (0, import_react.useCallback)(async () => {
818
+ const [idcard, baikey, ckc] = await Promise.allSettled([
819
+ checkIdCard(),
820
+ checkBaikToken(),
821
+ checkCkc()
822
+ ]);
823
+ setDeviceStatus({
824
+ idcard: idcard.status === "fulfilled" && idcard.value,
825
+ baikey: baikey.status === "fulfilled" && baikey.value,
826
+ ckc: ckc.status === "fulfilled" && ckc.value
827
+ });
828
+ }, []);
817
829
  (0, import_react.useEffect)(() => {
818
- install(apiKeys).then(() => setIsInstalled(true)).catch(() => setIsInstalled(false));
830
+ install(apiKeys).then(async () => {
831
+ setIsInstalled(true);
832
+ await checkDevices();
833
+ }).catch(() => setIsInstalled(false));
819
834
  }, []);
820
835
  const loadKeys = (0, import_react.useCallback)(async () => {
821
836
  setIsLoading(true);
822
837
  try {
823
838
  const certs = await listAllUserKeys();
824
839
  setKeyList(certs);
825
- const [idcard, baikey, ckc] = await Promise.allSettled([
826
- checkIdCard(),
827
- checkBaikToken(),
828
- checkCkc()
829
- ]);
830
- setDeviceStatus({
831
- idcard: idcard.status === "fulfilled" && idcard.value,
832
- baikey: baikey.status === "fulfilled" && baikey.value,
833
- ckc: ckc.status === "fulfilled" && ckc.value
834
- });
835
840
  } catch (err) {
836
841
  console.error("E-IMZO: Failed to load keys", err);
837
842
  } finally {
package/dist/index.js CHANGED
@@ -793,24 +793,29 @@ function EimzoProvider({ apiKeys, children }) {
793
793
  baikey: false,
794
794
  ckc: false
795
795
  });
796
+ const checkDevices = useCallback(async () => {
797
+ const [idcard, baikey, ckc] = await Promise.allSettled([
798
+ checkIdCard(),
799
+ checkBaikToken(),
800
+ checkCkc()
801
+ ]);
802
+ setDeviceStatus({
803
+ idcard: idcard.status === "fulfilled" && idcard.value,
804
+ baikey: baikey.status === "fulfilled" && baikey.value,
805
+ ckc: ckc.status === "fulfilled" && ckc.value
806
+ });
807
+ }, []);
796
808
  useEffect(() => {
797
- install(apiKeys).then(() => setIsInstalled(true)).catch(() => setIsInstalled(false));
809
+ install(apiKeys).then(async () => {
810
+ setIsInstalled(true);
811
+ await checkDevices();
812
+ }).catch(() => setIsInstalled(false));
798
813
  }, []);
799
814
  const loadKeys = useCallback(async () => {
800
815
  setIsLoading(true);
801
816
  try {
802
817
  const certs = await listAllUserKeys();
803
818
  setKeyList(certs);
804
- const [idcard, baikey, ckc] = await Promise.allSettled([
805
- checkIdCard(),
806
- checkBaikToken(),
807
- checkCkc()
808
- ]);
809
- setDeviceStatus({
810
- idcard: idcard.status === "fulfilled" && idcard.value,
811
- baikey: baikey.status === "fulfilled" && baikey.value,
812
- ckc: ckc.status === "fulfilled" && ckc.value
813
- });
814
819
  } catch (err) {
815
820
  console.error("E-IMZO: Failed to load keys", err);
816
821
  } finally {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@islom929/react-eimzo",
3
- "version": "0.3.2",
3
+ "version": "0.4.1",
4
4
  "description": "Headless E-IMZO digital signature integration for React",
5
5
  "type": "module",
6
6
  "main": "dist/index.cjs",