1"use strict";(self.webpackChunkheromodeapp_com=self.webpackChunkheromodeapp_com||[]).push([[3526],{3905:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>h});var o=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,o)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?r(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):r(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function s(e,t){if(null==e)return{};var a,o,n=function(e,t){if(null==e)return{};var a,o,n={},r=Object.keys(e);for(o=0;o<r.length;o++)a=r[o],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(o=0;o<r.length;o++)a=r[o],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var d=o.createContext({}),l=function(e){var t=o.useContext(d),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},u=function(e){var t=l(e.components);return o.createElement(d.Provider,{value:t},e.children)},p="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},m=o.forwardRef((function(e,t){var a=e.components,n=e.mdxType,r=e.originalType,d=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),p=l(a),m=n,h=p["".concat(d,".").concat(m)]||p[m]||c[m]||r;return a?o.createElement(h,i(i({ref:t},u),{},{components:a})):o.createElement(h,i({ref:t},u))}));function h(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var r=a.length,i=new Array(r);i[0]=m;var s={};for(var d in t)hasOwnProperty.call(t,d)&&(s[d]=t[d]);s.originalType=e,s[p]="string"==typeof e?e:n,i[1]=s;for(var l=2;l<r;l++)i[l]=a[l];return o.createElement.apply(null,i)}return o.createElement.apply(null,a)}m.displayName="MDXCreateElement"},2577:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>d,contentTitle:()=>i,default:()=>c,frontMatter:()=>r,metadata:()=>s,toc:()=>l});var o=a(87462),n=(a(67294),a(3905));const r={image:"./img0.png",title:"HeroMode Feature Preview: Expired Quests",description:"Introducing a new feature coming soon to HeroMode: Expired Quests",keywords:["heromode","productivity app","motivation","habits","habit tracker","progress tracker","goals","project management","task management","to do list","ios productivity app","time management","chore management","task motivation","task reminders","productivity management"],slug:"heromode-feature-preview-expired-quests",authors:["heromode-product"],tags:["heromode","announcement","product release"],hide_table_of_contents:!1,reactions:{"\ud83c\udfa4":"announcement","\ud83e\udd41":"dun dun dun","\ud83c\udf81":"new feature!","\ud83e\udd5b":"milk can expire","\ud83e\udd5a":"eggs can expire","\u23f0":"time can expire"}},i=void 0,s={permalink:"/blog/heromode-feature-preview-expired-quests",source:"@site/blog/2022-10-12-heromode-feature-preview-expired-quests/index.md",title:"HeroMode Feature Preview: Expired Quests",description:"Introducing a new feature coming soon to HeroMode: Expired Quests",date:"2022-10-12T00:00:00.000Z",formattedDate:"October 12, 2022",tags:[{label:"heromode",permalink:"/blog/tags/heromode"},{label:"announcement",permalink:"/blog/tags/announcement"},{label:"product release",permalink:"/blog/tags/product-release"}],readingTime:4.11,hasTruncateMarker:!0,authors:[{name:"[email protected]",title:"HeroMode Product",url:"https://heromodeapp.com",imageURL:"https://firebasestorage.googleapis.com/v0/b/heromode-website.appspot.com/o/public-site-assets%2Fpixel_knight_background.png?alt=media&token=8aa2b8b1-a38b-4999-ac43-e78b3f849571",key:"heromode-product"}],frontMatter:{image:"./img0.png",title:"HeroMode Feature Preview: Expired Quests",description:"Introducing a new feature coming soon to HeroMode: Expired Quests",keywords:["heromode","productivity app","motivation","habits","habit tracker","progress tracker","goals","project management","task management","to do list","ios productivity app","time management","chore management","task motivation","task reminders","productivity management"],slug:"heromode-feature-preview-expired-quests",authors:["heromode-product"],tags:["heromode","announcement","product release"],hide_table_of_contents:!1,reactions:{"\ud83c\udfa4":"announcement","\ud83e\udd41":"dun dun dun","\ud83c\udf81":"new feature!","\ud83e\udd5b":"milk can expire","\ud83e\udd5a":"eggs can expire","\u23f0":"time can expire"}},prevItem:{title:"HeroMode v2.2 Release!",permalink:"/blog/heromode-v2.2-release"},nextItem:{title:"How We Use HeroMode: Productivity Hours",permalink:"/blog/heromode-use-case-productivity-hours"}},d={image:a(89288).Z,authorsImageUrls:[void 0]},l=[{value:"Mark a Quest as Expired instead of Deleting it",id:"mark-a-quest-as-expired-instead-of-deleting-it",level:2},{value:"See Expired Quests in Stats & Activity Calendars",id:"see-expired-quests-in-stats--activity-calendars",level:2},{value:"Stats & Activity Calendars Also Got an Update!",id:"stats--activity-calendars-also-got-an-update",level:2}],u={toc:l},p="wrapper";
1function c(e){let{components:t,...r}=e;return(0,n.kt)(p,(0,o.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("img",{src:a(3222).Z,alt:"a new feature is coming soon to heromode: expired quests",width:"100%",style:{border:"1px solid #bdbdbd",borderRadius:"2px"}}),(0,n.kt)("br",null),(0,n.kt)("admonition",{title:"Summary",type:"tip"},(0,n.kt)("p",{parentName:"admonition"},"We have added Expired Quests to HeroMode!"),(0,n.kt)("p",{parentName:"admonition"},"With this new functionality, you can mark a quest as expired instead of deleting\nit. For example, for a quest that you just can't get to, and you'd like to keep\nit in the record and track the stats."),(0,n.kt)("p",{parentName:"admonition"},"Expired Quests, along with other updates on Stats and Activity Calendars, will\nbe available in the next release!")),(0,n.kt)("br",null),(0,n.kt)("p",null,"In ",(0,n.kt)("a",{parentName:"p",href:"https://heromodeapp.com/blog/heromode-use-case-productivity-hours"},"last week's blog post"),", our guest blogger, Jade, described how\nshe uses HeroMode to structure productivity hours at work."),(0,n.kt)("p",null,"Towards the end of the post, Jade mentioned a ",(0,n.kt)("a",{parentName:"p",href:"https://heromodeapp.com/blog/heromode-use-case-productivity-hours/#from-feature-requests-to-upcoming-features"},"feature request")," that she has proposed to the\nHeroMode team: missed quests. When Jade isn't able to complete one of her\nproductivity hour quests, she'd like to designate the quest as \"missed\", rather\nthan deleting it from the record."),(0,n.kt)("p",null,"We are happy to announce that this functionality has been introduced into the\nHeroMode codebase! We are currently testing it internally (including with\nJade!), and will be releasing it soon in an upcoming version."),(0,n.kt)("h2",{id:"mark-a-quest-as-expired-instead-of-deleting-it"},"Mark a Quest as Expired instead of Deleting it"),(0,n.kt)("p",null,'As we design the user experience of this feature idea, we felt the word "missed"\nwould only apply to repeat quests, rather than all quests. And we don\'t want\nthis new functionality to only apply to repeat quests.'),(0,n.kt)("p",null,'So we are using the word "expired" instead of "missed". That makes sense and\ncovers more use cases, we believe. When you don\'t plan to execute a quest, but\nstill would like to keep it in the record, marking it as "expired" sounds\nintuitive.'),(0,n.kt)("p",null,"Here is how it'd work (illustrated with the video below). Let's say you have a\nquest that you will never get to. Before, all you can do is deleting it. Now,\nwhen you click on the delete button, you have the option of marking it as\nexpired instead."),(0,n.kt)("div",{style:{overflow:"hidden",zIndex:1,border:"1px solid #bdbdbd",borderRadius:"12px",width:360}},(0,n.kt)("video",{width:360,muted:!0,controls:!0},(0,n.kt)("source",{src:"https://firebasestorage.googleapis.com/v0/b/heromode-website.appspot.com/o/public-site-assets%2Fmark-a-quest-as-expired.mp4?alt=media&token=adac95df-034b-4257-a644-dbc051ebddcc",type:"video/mp4"}))),(0,n.kt)("br",null),(0,n.kt)("p",null,"When a quest is expired, it'd get an expiration date, which by default is the\nend of the day on which it was created. You can also change the expiration date\nto any date you want!"),(0,n.kt)("p",null,'Now you are probably thinking, "hey does that mean I can also define an\nexpiration date for an open quest, and have the quest automatically be closed if\nI can\'t completed before then? LIKE A DEADLINE!?".'),(0,n.kt)("p",null,"If that's what you were thinking, we love it. You should tell us more about what\nyou think and all your HeroMode ideas. The answer is, yes, we are indeed\nthinking in this direction. We are actively gathering feedbacks to see how much\ninterest there is for defining deadline for an open quest."),(0,n.kt)("h2",{id:"see-expired-quests-in-stats--activity-calendars"},"See Expired Quests in Stats & Activity Calendars"),(0,n.kt)("p",null,"Expired quests do not earn points. That's expected since the quest was not\nactually completed. But how do we track them in stats in a way that's\ninformative, yet not overwhelming?"),
1(0,n.kt)("p",null,"We considered many possibilities. We even thought about negative points: what if\nan expired quest subtracts points from your points total? This suggestion was\nvery quickly vetoed. People really like their points!"),(0,n.kt)("p",null,"Moreover, in designing HeroMode, one major philosophy we have is to \"never\npunish effort\". We want to cheer you on as you get stuff done and make progress.\nSometimes, despite having the intention, and despite trying really hard, you\ndon't get everything done. We want the user to feel that's okay."),(0,n.kt)("p",null,"So we came up with the implementation shown in the screenshot below. When you\nlook at your stats, if there's any expired quest within a given timeframe, you'd\nsee how many. In the activity calendar, any day with expired quests is denoted\nwith one red dot."),(0,n.kt)("img",{src:a(5637).Z,alt:"soon you can track expired quests in heromode within stats and activity calendar",width:"360",style:{border:"1px solid #bdbdbd",borderRadius:"12px",marginRight:"12px"}}),(0,n.kt)("p",null,(0,n.kt)("em",{parentName:"p"},"Above: Expired quests can be tracked within stats and activity calendar.")),(0,n.kt)("h2",{id:"stats--activity-calendars-also-got-an-update"},"Stats & Activity Calendars Also Got an Update!"),(0,n.kt)("p",null,"Speaking of Stats & Activity Calendar, we also gave them an update!"),(0,n.kt)("p",null,"Previously, there are three types of timeframes to navigate your stats: Daily,\nWeekly, and All-time."),(0,n.kt)("p",null,'It finally occurred to us "All-time" doesn\'t make too much sense, whereas\n"Monthly" makes a lot of sense. So now, you can see your points total "Daily",\n"Weekly", or "Monthly". A much more logical set!'),(0,n.kt)("img",{src:a(10170).Z,alt:"stats timeframes are now daily, weekly, and monthly in the upcoming heromode update",width:"360",style:{border:"1px solid #bdbdbd",borderRadius:"12px",marginRight:"12px"}}),(0,n.kt)("p",null,(0,n.kt)("em",{parentName:"p"},"Above: In the upcoming release, stats timeframe will be Daily, Weekly, and Monthly.")),(0,n.kt)("br",null),(0,n.kt)("p",null,"All these new features and updates will be coming to the next HeroMode release.\nWe hope you will enjoy them!"))}c.isMDXComponent=!0},3222:(e,t,a)=>{a.d(t,{Z:()=>o});const o=a.p+"assets/images/img0-253f6b75f6a3b0c4baea0f9a63ec27f1.png"},5637:(e,t,a)=>{a.d(t,{Z:()=>o});const o=a.p+"assets/images/img1-bd17984e96e817cac61b23ce74ee43a4.png"},10170:(e,t,a)=>{a.d(t,{Z:()=>o});const o=a.p+"assets/images/img2-bab8eca60569a739de328ab42a520f09.png"},89288:(e,t,a)=>{a.d(t,{Z:()=>o});const o=a.p+"assets/images/img0-253f6b75f6a3b0c4baea0f9a63ec27f1.png"}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.