diff --git a/frontend/components/Domain/User/UserInviteDialog.vue b/frontend/components/Domain/User/UserInviteDialog.vue
new file mode 100644
index 000000000..e3c26bfae
--- /dev/null
+++ b/frontend/components/Domain/User/UserInviteDialog.vue
@@ -0,0 +1,215 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ $t("group.invite") }}
+
+
+
+
+
+
diff --git a/frontend/components/global/AppButtonCopy.vue b/frontend/components/global/AppButtonCopy.vue
index 09bbadcff..f8067fe04 100644
--- a/frontend/components/global/AppButtonCopy.vue
+++ b/frontend/components/global/AppButtonCopy.vue
@@ -15,6 +15,7 @@
:color="color"
retain-focus-on-click
:class="btnClass"
+ :disabled="copyText !== '' ? false : true"
@click="
on.click;
textToClipboard();
diff --git a/frontend/lang/messages/en-US.json b/frontend/lang/messages/en-US.json
index f9faf1e09..9b5c04f41 100644
--- a/frontend/lang/messages/en-US.json
+++ b/frontend/lang/messages/en-US.json
@@ -1279,6 +1279,7 @@
"profile": {
"welcome-user": "👋 Welcome, {0}!",
"description": "Manage your profile, recipes, and group settings.",
+ "invite-link": "Invite Link",
"get-invite-link": "Get Invite Link",
"get-public-link": "Get Public Link",
"account-summary": "Account Summary",
diff --git a/frontend/pages/admin/manage/users/index.vue b/frontend/pages/admin/manage/users/index.vue
index 3522c8828..c36bb4340 100644
--- a/frontend/pages/admin/manage/users/index.vue
+++ b/frontend/pages/admin/manage/users/index.vue
@@ -1,5 +1,6 @@
+
{{ $t("general.create") }}
+
+ {{ $t("group.invite") }}
+
@@ -69,12 +73,17 @@ import { useAdminApi } from "~/composables/api";
import { alert } from "~/composables/use-toast";
import { useUser, useAllUsers } from "~/composables/use-user";
import { UserOut } from "~/lib/api/types/user";
+import UserInviteDialog from "~/components/Domain/User/UserInviteDialog.vue";
export default defineComponent({
+ components: {
+ UserInviteDialog,
+ },
layout: "admin",
setup() {
const api = useAdminApi();
const refUserDialog = ref();
+ const inviteDialog = ref();
const { $auth } = useContext();
const user = computed(() => $auth.user);
@@ -99,6 +108,9 @@ export default defineComponent({
deleteDialog: false,
deleteTargetId: "",
search: "",
+ groups: [],
+ households: [],
+ sendTo: "",
});
const { users, refreshAllUsers } = useAllUsers();
@@ -154,6 +166,7 @@ export default defineComponent({
deleteUser,
loading,
refUserDialog,
+ inviteDialog,
users,
user,
handleRowClick,
diff --git a/frontend/pages/user/profile/index.vue b/frontend/pages/user/profile/index.vue
index 420ae3a03..a218eb2e7 100644
--- a/frontend/pages/user/profile/index.vue
+++ b/frontend/pages/user/profile/index.vue
@@ -9,44 +9,14 @@
-
+
{{ $globals.icons.createAlt }}
{{ $t('profile.get-invite-link') }}
-
-
-
- {{ generatedSignupLink }}
-
-
-
-
- {{ $t("general.close") }}
-
-
-
-
- {{ $globals.icons.email }}
-
- {{ $t("user.email") }}
-
-
-
-
-
-
- {{ publicLink }}
-
-
-
- {{ $t("general.close") }}
-
-
-
-
+