+ Welcome to Time Safari
+
+ Showcasing Gratitude & Magnifing Time
+
+
+
+ You can now log things that you've received or witnessed:
+
+ click on {{ firstContactName }}'s name or
+
+ click on "Unnamed" to express your appreciation for... whatever -- like
+ thanks for showing you all these fascinating stories of
+ gratitude.
+
+
+ The feed underneath this pop-up shows the latest gifts recognized by
+ others. Once someone registers you, you'll be able to log your
+ appreciation, too.
+
+
+
+ The more you illuminate cool things people are doing, the more you
+ attract people to work together with you.
+
+
+
+ The
+
+ button below brings you back to this feed screen.
+
+
+
+
+
+
+
+
+
+
+ To see these instructions and more, click above on
+
+ Help
+
+
+
+
+
+
+ Find Interesting Events & Projects
+
+
+
+ It turns out that people in groups have more to be grateful for and get
+ more accomplished, so here you'll find others who are doing interesting
+ things. Some may be in your neighborhood. Search for a topic, or search
+ around your location under "Nearby".
+
+
+
+ The
+
+ button below brings you to this discovery screen.
+
+
+
+
+
+
+
+
+
+
+
+
+ Fish for Others with Projects of Your Own
+
+
+
+ Now you can take a turn: throw out projects of your own... anything
+ you'd like to see happen. If your first idea doesn't attract any fish,
+ try, try again... and let others know that this is a good place to find
+ help.
+
+
+
+ The
+
+ button below brings you here to your ideas.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/db/tables/settings.ts b/src/db/tables/settings.ts
index 94bb3bb..517a4d0 100644
--- a/src/db/tables/settings.ts
+++ b/src/db/tables/settings.ts
@@ -24,6 +24,7 @@ export type Settings = {
filterFeedByNearby?: boolean; // filter by nearby
filterFeedByVisible?: boolean; // filter by visible users ie. anyone not hidden
+ finishedOnboarding?: boolean; // the user has completed the onboarding process
firstName?: string; // user's full name, may be null if unwanted for a particular account
hideRegisterPromptOnNewContact?: boolean;
diff --git a/src/libs/util.ts b/src/libs/util.ts
index ba921fa..07a3b15 100644
--- a/src/libs/util.ts
+++ b/src/libs/util.ts
@@ -32,6 +32,14 @@ export interface GiverReceiverInputInfo {
name?: string;
}
+export enum OnboardPage {
+ Home = "HOME",
+ Discover = "DISCOVER",
+ Create = "CREATE",
+ Contact = "CONTACT",
+ Account = "ACCOUNT",
+}
+
export const PRIVACY_MESSAGE =
"The data you send will be visible to the world -- except: your IDs and the IDs of anyone you tag will stay private, only visible to them and others you explicitly allow.";
export const SHARED_PHOTO_BASE64_KEY = "shared-photo-base64";
diff --git a/src/views/DiscoverView.vue b/src/views/DiscoverView.vue
index fd62d28..64281a7 100644
--- a/src/views/DiscoverView.vue
+++ b/src/views/DiscoverView.vue
@@ -9,6 +9,8 @@
Discover Projects
+
+
Next Steps
- Although not totally necessary, these are important to understand.
+ Although not totally necessary, backups are important to understand.
-
Backups
+
Without a backup, you can lose data.
Exporting backups (from the Account screen)
diff --git a/src/views/HelpView.vue b/src/views/HelpView.vue
index e1aa7be..39c010d 100644
--- a/src/views/HelpView.vue
+++ b/src/views/HelpView.vue
@@ -27,6 +27,14 @@
This app focuses on gifts & gratitude, using them to build cool things together with your network.
+
+ If you'd like to see the page-by-page help,
+ click here.
+
+
What is the idea here?
We are building networks of people who want to grow good society from the ground up, using modern
@@ -548,11 +556,13 @@
diff --git a/src/views/HomeView.vue b/src/views/HomeView.vue
index 32682b1..ec37ff1 100644
--- a/src/views/HomeView.vue
+++ b/src/views/HomeView.vue
@@ -8,6 +8,8 @@
{{ AppString.APP_NAME }}
+
+
Your Ideas
+
+
@@ -261,10 +263,14 @@ import { Router } from "vue-router";
import { NotificationIface } from "@/constants/app";
import { accountsDB, db, retrieveSettingsForActiveAccount } from "@/db/index";
import * as libsUtil from "@/libs/util";
+import EntityIcon from "@/components/EntityIcon.vue";
import InfiniteScroll from "@/components/InfiniteScroll.vue";
import QuickNav from "@/components/QuickNav.vue";
+import OnboardingDialog from "@/components/OnboardingDialog.vue";
import ProjectIcon from "@/components/ProjectIcon.vue";
import TopMessage from "@/components/TopMessage.vue";
+import UserNameDialog from "@/components/UserNameDialog.vue";
+import { Contact } from "@/db/tables/contacts";
import {
didInfo,
getHeaders,
@@ -272,15 +278,14 @@ import {
OfferSummaryRecord,
PlanData,
} from "@/libs/endorserServer";
-import EntityIcon from "@/components/EntityIcon.vue";
-import { Contact } from "@/db/tables/contacts";
-import UserNameDialog from "@/components/UserNameDialog.vue";
+import { OnboardPage } from "@/libs/util";
@Component({
components: {
EntityIcon,
InfiniteScroll,
QuickNav,
+ OnboardingDialog,
ProjectIcon,
TopMessage,
UserNameDialog,
@@ -325,6 +330,12 @@ export default class ProjectsView extends Vue {
const allAccounts = await accountsDB.accounts.toArray();
this.allMyDids = allAccounts.map((acc) => acc.did);
+ if (!settings.finishedOnboarding) {
+ (this.$refs.onboardingDialog as OnboardingDialog).open(
+ OnboardPage.Create,
+ );
+ }
+
if (allAccounts.length === 0) {
console.error("No accounts found.");
this.errNote("You need an identifier to load your projects.");