diff --git a/frontend/src/pages/clients/ClientFormModal.tsx b/frontend/src/pages/clients/ClientFormModal.tsx
index 9f469c5c..619094d0 100644
--- a/frontend/src/pages/clients/ClientFormModal.tsx
+++ b/frontend/src/pages/clients/ClientFormModal.tsx
@@ -14,6 +14,7 @@ import {
Tag,
message,
} from 'antd';
+import { ReloadOutlined } from '@ant-design/icons';
import dayjs from 'dayjs';
import type { Dayjs } from 'dayjs';
@@ -369,7 +370,7 @@ export default function ClientFormModal({
style={{ flex: 1 }}
onChange={(e) => update('email', e.target.value)}
/>
-
+ } onClick={() => update('email', RandomUtil.randomLowerAndNum(12))} />
@@ -377,7 +378,7 @@ export default function ClientFormModal({
update('subId', e.target.value)} />
-
+ } onClick={() => update('subId', RandomUtil.randomLowerAndNum(16))} />
@@ -388,7 +389,7 @@ export default function ClientFormModal({
update('auth', e.target.value)} />
-
+ } onClick={() => update('auth', RandomUtil.randomLowerAndNum(16))} />
@@ -396,7 +397,7 @@ export default function ClientFormModal({
update('password', e.target.value)} />
-
+ } onClick={() => update('password', RandomUtil.randomLowerAndNum(16))} />
@@ -407,7 +408,7 @@ export default function ClientFormModal({
update('uuid', e.target.value)} />
-
+ } onClick={() => update('uuid', RandomUtil.randomUUID())} />
diff --git a/frontend/src/pages/xray/OutboundFormModal.tsx b/frontend/src/pages/xray/OutboundFormModal.tsx
index 00b10bf9..ec67698b 100644
--- a/frontend/src/pages/xray/OutboundFormModal.tsx
+++ b/frontend/src/pages/xray/OutboundFormModal.tsx
@@ -13,7 +13,7 @@ import {
Tabs,
message,
} from 'antd';
-import { DeleteOutlined, MinusOutlined, PlusOutlined, SyncOutlined } from '@ant-design/icons';
+import { DeleteOutlined, MinusOutlined, PlusOutlined, ReloadOutlined } from '@ant-design/icons';
import FinalMaskForm from '@/components/FinalMaskForm';
import HeaderMapEditor from '@/components/HeaderMapEditor';
@@ -977,23 +977,20 @@ export default function OutboundFormModal({
-
- {t('pages.inbounds.privatekey')}
- {
- const pair = Wireguard.generateKeypair();
- form.setFieldValue(['settings', 'secretKey'], pair.privateKey);
- form.setFieldValue(['settings', 'pubKey'], pair.publicKey);
- }}
- />
- >
- }
- name={['settings', 'secretKey']}
- >
-
+
+
+
+
+
+ }
+ onClick={() => {
+ const pair = Wireguard.generateKeypair();
+ form.setFieldValue(['settings', 'secretKey'], pair.privateKey);
+ form.setFieldValue(['settings', 'pubKey'], pair.publicKey);
+ }}
+ />
+
diff --git a/frontend/src/styles/utils.css b/frontend/src/styles/utils.css
index cff6fe63..047e053f 100644
--- a/frontend/src/styles/utils.css
+++ b/frontend/src/styles/utils.css
@@ -16,12 +16,6 @@
.zero-margin { margin: 0; }
-.random-icon {
- margin-left: 4px;
- cursor: pointer;
- color: var(--ant-color-primary);
-}
-
.danger-icon {
margin-left: 8px;
cursor: pointer;