Skip to content

Commit

Permalink
Polished creation for quick create user
Browse files Browse the repository at this point in the history
  • Loading branch information
hudec117 committed Oct 20, 2023
1 parent f824fa9 commit 7fc2011
Show file tree
Hide file tree
Showing 3 changed files with 84 additions and 4 deletions.
12 changes: 9 additions & 3 deletions src/components/QuickCreateUser.vue
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
import { onMounted, ref } from 'vue';
import PopoutCardFooter from './PopoutCardFooter.vue';
import FullscreenOverlay from '@/components/slds/FullscreenOverlay.vue';
import SalesforceToolingService from '@/services/salesforce-tooling-service';
import Context from '@/models/context';
import QuickCreateUserSettingsModal from '@/components/modals/quick-create-user-settings/QuickCreateUserSettingsModal.vue';
Expand All @@ -17,6 +18,7 @@ const props = defineProps<{
context: Context
}>();
const overlay = ref<InstanceType<typeof FullscreenOverlay> | null>(null);
const settingsModal = ref<InstanceType<typeof QuickCreateUserSettingsModal> | null>(null);
let userService: SalesforceUserService;
Expand Down Expand Up @@ -158,10 +160,13 @@ async function onCreateAndCloseClick() {
}
}
error.value = `User created!`;
// Show overlay
const message = form.value.resetPassword ? 'User created and password reset sent!' : 'User created!';
await overlay.value?.show(message, 2000);
// const currentPopup = await chrome.windows.getCurrent();
// await chrome.windows.remove(currentPopup.id!);
// Close window
const currentPopup = await chrome.windows.getCurrent();
await chrome.windows.remove(currentPopup.id!);
} finally {
creating.value = false;
}
Expand Down Expand Up @@ -377,6 +382,7 @@ async function onCreateAndCloseClick() {
</article>

<QuickCreateUserSettingsModal ref="settingsModal" />
<FullscreenOverlay ref="overlay" />
</template>

<style>
Expand Down
2 changes: 1 addition & 1 deletion src/components/modals/user-select/UserSelectModal.vue
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { ref } from 'vue';
import type User from '@/models/User';
import SearchLookup from '../../slds/SearchLookup.vue';
import SearchLookupItem from '@/components/slds/SearchLookupItem';
import type Context from '@/models/context';
import Context from '@/models/context';
import SalesforceRESTService from '@/services/salesforce-rest-service';
let restService: SalesforceRESTService;
Expand Down
74 changes: 74 additions & 0 deletions src/components/slds/FullscreenOverlay.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
<script setup lang="ts">
import { ref } from 'vue';
const visible = ref(false);
const message = ref('');
function show(messageInput: string, duration: number): Promise<void> {
message.value = messageInput;
visible.value = true;
return new Promise<void>((resolve) => {
setTimeout(() => {
visible.value = false;
resolve();
}, duration);
});
}
defineExpose<{
show(message: string, duration: number): Promise<void>
}>({
show
});
</script>

<template>
<Transition>
<div class="overlay slds-align_absolute-center" v-if="visible">
<div class="overlay-content">
<span class="slds-icon_container slds-icon-utility-success slds-m-bottom_x-small">
<svg class="slds-icon slds-icon-text-default">
<use xlink:href="slds/assets/icons/utility-sprite/svg/symbols.svg#success"></use>
</svg>
</span>
<div class="slds-text-heading_medium">{{ message }}</div>
</div>
</div>
</Transition>
</template>

<style scoped>
.overlay {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgb(69, 198, 90);
z-index: 2;
}
.overlay-content {
text-align: center;
color: white;
}
.overlay .slds-icon {
fill: white;
}
.v-enter-active {
animation: scale-in 0.25s;
}
@keyframes scale-in {
0% {
transform: scale(0);
}
100% {
transform: scale(1);
}
}
</style>

0 comments on commit 7fc2011

Please sign in to comment.