@invoice-sdk/widget 0.0.0 → 1.5.2

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.
@@ -1,74 +1,74 @@
1
- import { useNavigate } from "react-router-dom";
2
- import Button from "../components/button";
3
- import CustomCheckbox from "../components/form/custom-checkbox";
4
- import { useProcessStore } from "../store/process";
5
- import { useRegisterStore } from "../store/register";
6
-
7
-
8
-
9
- interface IProvider {
10
- name: string;
11
- route: string;
12
- };
13
-
14
- const providers: IProvider[] = [
15
- { name: 'M-Invoice', route: 'm-invoice' },
16
- { name: 'FPT', route: 'fpt' },
17
- { name: 'Misa', route: 'misa' },
18
- ];
19
-
20
- const ProviderItem = ({ provider, handleProviderChange }: { provider: IProvider,
21
- handleProviderChange: (provider: string) => void
22
- } ) => {
23
- const selectedProvider = useRegisterStore((state) => state.selectedProvider)
24
- return (
25
- <div
26
- data-checked={selectedProvider === provider.route}
27
- className="flex items-center justify-center gap-2 px-4 py-2 border border-gray-300 rounded-md hover:bg-gray-100 cursor-pointer
28
- transition-colors duration-200 data-[checked=true]:border-green-500 data-[checked=true]:text-green-700
29
- "
30
- onClick={() => handleProviderChange(provider.route)}
31
- >
32
- <CustomCheckbox checked={selectedProvider === provider.route}
33
- setChecked={() => handleProviderChange(provider.route)}
34
- />
35
- <label className="">{provider.name}</label>
36
- </div>
37
- )
38
- }
39
-
40
- const SelectProvider = () => {
41
-
42
- const navigate = useNavigate()
43
- const selectedProvider = useRegisterStore((state) => state.selectedProvider);
44
- const setSelectedProvider = useRegisterStore((state) => state.setSelectedProvider);
45
- const nextStep = useProcessStore(state => state.nextStep);
46
-
47
- const handleProviderChange = (provider: string) => {
48
- setSelectedProvider(provider);
49
- };
50
-
51
- return (
52
- <div className="w-full flex flex-col gap-6">
53
- <h2 className="heading">Select Provider</h2>
54
- <div className="flex gap-20">
55
- {
56
- providers.map((provider) => (
57
- <ProviderItem key={provider.route} provider={provider} handleProviderChange={handleProviderChange} />
58
- ))
59
- }
60
- </div>
61
- <div className='text-right'>
62
- <Button title={'Next'}
63
- isDisabled={!selectedProvider}
64
- handleClick={() => {
65
- nextStep()
66
- navigate("/register")
67
- }}
68
- />
69
- </div>
70
- </div>
71
- )
72
- }
73
-
1
+ import { useNavigate } from "react-router-dom";
2
+ import Button from "../components/button";
3
+ import CustomCheckbox from "../components/form/custom-checkbox";
4
+ import { useProcessStore } from "../store/process";
5
+ import { useRegisterStore } from "../store/register";
6
+
7
+
8
+
9
+ interface IProvider {
10
+ name: string;
11
+ route: string;
12
+ };
13
+
14
+ const providers: IProvider[] = [
15
+ { name: 'M-Invoice', route: 'm-invoice' },
16
+ { name: 'FPT', route: 'fpt' },
17
+ { name: 'Misa', route: 'misa' },
18
+ ];
19
+
20
+ const ProviderItem = ({ provider, handleProviderChange }: { provider: IProvider,
21
+ handleProviderChange: (provider: string) => void
22
+ } ) => {
23
+ const selectedProvider = useRegisterStore((state) => state.selectedProvider)
24
+ return (
25
+ <div
26
+ data-checked={selectedProvider === provider.route}
27
+ className="flex items-center justify-center gap-2 px-4 py-2 border border-gray-300 rounded-md hover:bg-gray-100 cursor-pointer
28
+ transition-colors duration-200 data-[checked=true]:border-green-500 data-[checked=true]:text-green-700
29
+ "
30
+ onClick={() => handleProviderChange(provider.route)}
31
+ >
32
+ <CustomCheckbox checked={selectedProvider === provider.route}
33
+ setChecked={() => handleProviderChange(provider.route)}
34
+ />
35
+ <label className="">{provider.name}</label>
36
+ </div>
37
+ )
38
+ }
39
+
40
+ const SelectProvider = () => {
41
+
42
+ const navigate = useNavigate()
43
+ const selectedProvider = useRegisterStore((state) => state.selectedProvider);
44
+ const setSelectedProvider = useRegisterStore((state) => state.setSelectedProvider);
45
+ const nextStep = useProcessStore(state => state.nextStep);
46
+
47
+ const handleProviderChange = (provider: string) => {
48
+ setSelectedProvider(provider);
49
+ };
50
+
51
+ return (
52
+ <div className="w-full flex flex-col gap-6">
53
+ <h2 className="heading">Select Provider</h2>
54
+ <div className="flex gap-20">
55
+ {
56
+ providers.map((provider) => (
57
+ <ProviderItem key={provider.route} provider={provider} handleProviderChange={handleProviderChange} />
58
+ ))
59
+ }
60
+ </div>
61
+ <div className='text-right'>
62
+ <Button title={'Next'}
63
+ isDisabled={!selectedProvider}
64
+ handleClick={() => {
65
+ nextStep()
66
+ navigate("/register")
67
+ }}
68
+ />
69
+ </div>
70
+ </div>
71
+ )
72
+ }
73
+
74
74
  export default SelectProvider
@@ -1,9 +1,9 @@
1
-
2
-
3
- const Status = () => {
4
- return (
5
- <div>Status</div>
6
- )
7
- }
8
-
1
+
2
+
3
+ const Status = () => {
4
+ return (
5
+ <div>Status</div>
6
+ )
7
+ }
8
+
9
9
  export default Status
@@ -1,18 +1,18 @@
1
- import {create} from 'zustand';
2
-
3
- type State = {
4
- step: number;
5
-
6
- }
7
-
8
- type Actions = {
9
- nextStep: () => void
10
- prevStep: () => void
11
- }
12
-
13
- export const useProcessStore = create<State & Actions>((set) => ({
14
- step: 1,
15
- nextStep: () => set((state) => ({ step: state.step + 1 })),
16
- prevStep: () => set((state) => ({ step: Math.max(state.step - 1, 1) })),
17
- reset: () => set({ step: 1})
1
+ import {create} from 'zustand';
2
+
3
+ type State = {
4
+ step: number;
5
+
6
+ }
7
+
8
+ type Actions = {
9
+ nextStep: () => void
10
+ prevStep: () => void
11
+ }
12
+
13
+ export const useProcessStore = create<State & Actions>((set) => ({
14
+ step: 1,
15
+ nextStep: () => set((state) => ({ step: state.step + 1 })),
16
+ prevStep: () => set((state) => ({ step: Math.max(state.step - 1, 1) })),
17
+ reset: () => set({ step: 1})
18
18
  }));
@@ -1,60 +1,60 @@
1
- import {create } from 'zustand';
2
-
3
- type State = {
4
- selectedProvider: string | null;
5
- form: {
6
- taxCode: string;
7
- companyName: string;
8
- representative: string;
9
- position: string;
10
- email: string;
11
- phoneNumber: string | null;
12
- address: string ;
13
- license: File | null;
14
- },
15
- selectedPlan: string | null;
16
- }
17
-
18
- type Actions = {
19
- setSelectedProvider: (provider: string | null) => void;
20
- setForm: (form: Partial<State['form']>) => void;
21
- setSelectedPlan: (plan: string | null) => void;
22
- reset: () => void;
23
- }
24
- export const useRegisterStore = create<State & Actions>((set) => ({
25
- selectedProvider: null,
26
- form: {
27
- taxCode: '',
28
- companyName: '',
29
- representative: '',
30
- position: '',
31
- email: '',
32
- phoneNumber: null,
33
- address: '',
34
- license: null,
35
- },
36
- selectedPlan: null,
37
-
38
- setSelectedProvider: (provider) => set({ selectedProvider: provider }),
39
-
40
- setForm: (form) => set((state) => ({
41
- form: { ...state.form, ...form }
42
- })),
43
-
44
- setSelectedPlan: (plan) => set({ selectedPlan: plan }),
45
-
46
- reset: () => set({
47
- selectedProvider: null,
48
- form: {
49
- taxCode: '',
50
- companyName: '',
51
- representative: '',
52
- position: '',
53
- email: '',
54
- phoneNumber: null,
55
- address: '',
56
- license: null,
57
- },
58
- selectedPlan: null,
59
- }),
1
+ import {create } from 'zustand';
2
+
3
+ type State = {
4
+ selectedProvider: string | null;
5
+ form: {
6
+ taxCode: string;
7
+ companyName: string;
8
+ representative: string;
9
+ position: string;
10
+ email: string;
11
+ phoneNumber: string | null;
12
+ address: string ;
13
+ license: File | null;
14
+ },
15
+ selectedPlan: string | null;
16
+ }
17
+
18
+ type Actions = {
19
+ setSelectedProvider: (provider: string | null) => void;
20
+ setForm: (form: Partial<State['form']>) => void;
21
+ setSelectedPlan: (plan: string | null) => void;
22
+ reset: () => void;
23
+ }
24
+ export const useRegisterStore = create<State & Actions>((set) => ({
25
+ selectedProvider: null,
26
+ form: {
27
+ taxCode: '',
28
+ companyName: '',
29
+ representative: '',
30
+ position: '',
31
+ email: '',
32
+ phoneNumber: null,
33
+ address: '',
34
+ license: null,
35
+ },
36
+ selectedPlan: null,
37
+
38
+ setSelectedProvider: (provider) => set({ selectedProvider: provider }),
39
+
40
+ setForm: (form) => set((state) => ({
41
+ form: { ...state.form, ...form }
42
+ })),
43
+
44
+ setSelectedPlan: (plan) => set({ selectedPlan: plan }),
45
+
46
+ reset: () => set({
47
+ selectedProvider: null,
48
+ form: {
49
+ taxCode: '',
50
+ companyName: '',
51
+ representative: '',
52
+ position: '',
53
+ email: '',
54
+ phoneNumber: null,
55
+ address: '',
56
+ license: null,
57
+ },
58
+ selectedPlan: null,
59
+ }),
60
60
  }));
package/tsconfig.json CHANGED
@@ -1,19 +1,19 @@
1
- {
2
- "compilerOptions": {
3
- "target": "ES2019",
4
- "module": "CommonJS",
5
- "jsx": "react-jsx",
6
- "outDir": "dist",
7
- "rootDir": "src",
8
- "strict": true,
9
- "declaration": true,
10
- "declarationMap": true,
11
- "sourceMap": true,
12
- "esModuleInterop": true,
13
- "forceConsistentCasingInFileNames": true,
14
- "skipLibCheck": true,
15
- "emitDeclarationOnly": true,
16
- },
17
- "include": ["src/**/*"],
18
- "exclude": ["node_modules", "dist"]
19
- }
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2019",
4
+ "module": "CommonJS",
5
+ "jsx": "react-jsx",
6
+ "outDir": "dist",
7
+ "rootDir": "src",
8
+ "strict": true,
9
+ "declaration": true,
10
+ "declarationMap": true,
11
+ "sourceMap": true,
12
+ "esModuleInterop": true,
13
+ "forceConsistentCasingInFileNames": true,
14
+ "skipLibCheck": true,
15
+ "emitDeclarationOnly": true,
16
+ },
17
+ "include": ["src/**/*"],
18
+ "exclude": ["node_modules", "dist"]
19
+ }
@@ -1 +1 @@
1
- {"root":["./src/app.tsx","./src/index.ts","./src/main.tsx","./src/vite-env.d.ts","./src/components/button.tsx","./src/components/layout.tsx","./src/components/process.tsx","./src/components/form/custom-checkbox.tsx","./src/components/form/file-upload.tsx","./src/components/form/input-field.tsx","./src/components/form/select-option.tsx","./src/pages/register.tsx","./src/pages/select-plan.tsx","./src/pages/select-provider.tsx","./src/pages/status.tsx","./src/store/process.ts","./src/store/register.ts"],"version":"5.8.3"}
1
+ {"root":["./src/App.tsx","./src/index.ts","./src/main.tsx","./src/vite-env.d.ts","./src/components/button.tsx","./src/components/layout.tsx","./src/components/process.tsx","./src/components/form/custom-checkbox.tsx","./src/components/form/file-upload.tsx","./src/components/form/input-field.tsx","./src/components/form/select-option.tsx","./src/pages/register.tsx","./src/pages/select-plan.tsx","./src/pages/select-provider.tsx","./src/pages/status.tsx","./src/store/process.ts","./src/store/register.ts"],"version":"5.8.3"}