{"version":3,"file":"js/Home-Home-page.bfd169f270974358c3e5.js","mappings":"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","sources":["webpack://fider/./public/assets/images/undraw-no-data.svg","webpack://fider/./public/assets/images/heroicons-chat-alt-2.svg","webpack://fider/./public/pages/Home/components/ListPosts.tsx","webpack://fider/./public/pages/Home/components/SimilarPosts.tsx","webpack://fider/./public/pages/Home/components/PostInput.tsx","webpack://fider/./public/assets/images/heroicons-filter.svg","webpack://fider/./public/pages/Home/components/PostFilter.tsx","webpack://fider/./public/pages/Home/components/PostsSort.tsx","webpack://fider/./public/pages/Home/components/PostsContainer.tsx","webpack://fider/./public/pages/Home/Home.page.tsx","webpack://fider/./public/assets/images/heroicons-search.svg"],"sourcesContent":["import SpriteSymbol from \"../../../node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"undraw-no-data\",\n \"use\": \"undraw-no-data-usage\",\n \"viewBox\": \"0 0 647.636 632.174\",\n \"content\": \"\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import SpriteSymbol from \"../../../node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"heroicons-chat-alt-2\",\n \"use\": \"heroicons-chat-alt-2-usage\",\n \"viewBox\": \"0 0 24 24\",\n \"content\": \"\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import React from \"react\"\nimport { Post, Tag, CurrentUser } from \"@fider/models\"\nimport { ShowTag, VoteCounter, Markdown, Icon, ResponseLozenge } from \"@fider/components\"\nimport IconChatAlt2 from \"@fider/assets/images/heroicons-chat-alt-2.svg\"\nimport { HStack, VStack } from \"@fider/components/layout\"\n\ninterface ListPostsProps {\n posts?: Post[]\n tags: Tag[]\n emptyText: string\n}\n\nconst ListPostItem = (props: { post: Post; user?: CurrentUser; tags: Tag[] }) => {\n return (\n \n
\n \n
\n \n {props.post.status !== \"open\" && (\n
\n \n
\n )}\n \n \n {props.post.title}\n \n {props.post.commentsCount > 0 && (\n \n {props.post.commentsCount} \n \n )}\n \n \n {props.tags.length >= 1 && (\n \n {props.tags.map((tag) => (\n \n ))}\n \n )}\n
\n
\n )\n}\n\nexport const ListPosts = (props: ListPostsProps) => {\n if (!props.posts) {\n return null\n }\n\n if (props.posts.length === 0) {\n return

{props.emptyText}

\n }\n\n return (\n \n {props.posts.map((post) => (\n post.tags.indexOf(tag.slug) >= 0)} />\n ))}\n \n )\n}\n","import React from \"react\"\nimport { Post, Tag, CurrentUser } from \"@fider/models\"\nimport { PageTitle, Loader } from \"@fider/components\"\nimport { ListPosts } from \"./ListPosts\"\nimport { actions } from \"@fider/services\"\n\nimport { i18n } from \"@lingui/core\"\n\ninterface SimilarPostsProps {\n title: string\n tags: Tag[]\n user?: CurrentUser\n}\n\ninterface SimilarPostsState {\n title: string\n posts: Post[]\n loading: boolean\n}\n\nexport class SimilarPosts extends React.Component {\n constructor(props: SimilarPostsProps) {\n super(props)\n this.state = {\n title: props.title,\n loading: !!props.title,\n posts: [],\n }\n }\n\n public static getDerivedStateFromProps(nextProps: SimilarPostsProps, prevState: SimilarPostsState) {\n if (nextProps.title !== prevState.title) {\n return {\n loading: true,\n title: nextProps.title,\n }\n }\n return null\n }\n public componentDidMount() {\n this.loadSimilarPosts()\n }\n\n private timer?: number\n public componentDidUpdate() {\n window.clearTimeout(this.timer)\n this.timer = window.setTimeout(this.loadSimilarPosts, 500)\n }\n\n private loadSimilarPosts = () => {\n if (this.state.loading) {\n actions.searchPosts({ query: this.state.title }).then((x) => {\n if (x.ok) {\n this.setState({ loading: false, posts: x.data })\n }\n })\n }\n }\n\n public render() {\n const title = i18n._(\"home.similar.title\", { message: \"Similar posts\" })\n const subtitle = i18n._(\"home.similar.subtitle\", { message: \"Consider voting on existing posts instead.\" })\n\n return (\n <>\n \n {this.state.loading ? (\n \n ) : (\n \n )}\n \n )\n }\n}\n","import React, { useState, useEffect, useRef } from \"react\"\nimport { Button, ButtonClickEvent, Input, Form, TextArea, MultiImageUploader } from \"@fider/components\"\nimport { SignInModal } from \"@fider/components\"\nimport { cache, actions, Failure } from \"@fider/services\"\nimport { ImageUpload } from \"@fider/models\"\nimport { useFider } from \"@fider/hooks\"\nimport { i18n } from \"@lingui/core\"\nimport { Trans } from \"@lingui/react/macro\"\n\ninterface PostInputProps {\n placeholder: string\n onTitleChanged: (title: string) => void\n}\n\nconst CACHE_TITLE_KEY = \"PostInput-Title\"\nconst CACHE_DESCRIPTION_KEY = \"PostInput-Description\"\n\nexport const PostInput = (props: PostInputProps) => {\n const getCachedValue = (key: string): string => {\n if (fider.session.isAuthenticated) {\n return cache.session.get(key) || \"\"\n }\n return \"\"\n }\n\n const fider = useFider()\n const titleRef = useRef()\n const [title, setTitle] = useState(getCachedValue(CACHE_TITLE_KEY))\n const [description, setDescription] = useState(getCachedValue(CACHE_DESCRIPTION_KEY))\n const [isSignInModalOpen, setIsSignInModalOpen] = useState(false)\n const [attachments, setAttachments] = useState([])\n const [error, setError] = useState(undefined)\n\n useEffect(() => {\n props.onTitleChanged(title)\n }, [title])\n\n const handleTitleFocus = () => {\n if (!fider.session.isAuthenticated && titleRef.current) {\n titleRef.current.blur()\n setIsSignInModalOpen(true)\n }\n }\n\n const handleTitleChange = (value: string) => {\n cache.session.set(CACHE_TITLE_KEY, value)\n setTitle(value)\n props.onTitleChanged(value)\n }\n\n const hideModal = () => setIsSignInModalOpen(false)\n const clearError = () => setError(undefined)\n\n const handleDescriptionChange = (value: string) => {\n cache.session.set(CACHE_DESCRIPTION_KEY, value)\n setDescription(value)\n }\n\n const submit = async (event: ButtonClickEvent) => {\n if (title) {\n const result = await actions.createPost(title, description, attachments)\n if (result.ok) {\n clearError()\n cache.session.remove(CACHE_TITLE_KEY, CACHE_DESCRIPTION_KEY)\n location.href = `/posts/${result.data.number}/${result.data.slug}`\n event.preventEnable()\n } else if (result.error) {\n setError(result.error)\n }\n }\n }\n\n const details = () => (\n <>\n \n \n \n \n )\n\n return (\n <>\n \n
\n \n {title && details()}\n \n \n )\n}\n","import SpriteSymbol from \"../../../node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"heroicons-filter\",\n \"use\": \"heroicons-filter-usage\",\n \"viewBox\": \"0 0 24 24\",\n \"content\": \"\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import React from \"react\"\nimport { PostStatus, Tag } from \"@fider/models\"\nimport { Checkbox, Dropdown, Icon } from \"@fider/components\"\nimport { HStack } from \"@fider/components/layout\"\nimport HeroIconFilter from \"@fider/assets/images/heroicons-filter.svg\"\n\nimport { useFider } from \"@fider/hooks\"\nimport { i18n } from \"@lingui/core\"\n\nimport { FilterState } from \"./PostsContainer\"\n\ntype FilterType = \"tag\" | \"status\" | \"myVotes\"\n\ninterface OptionItem {\n value: string | boolean\n label: string\n count?: number\n type: FilterType\n}\n\ninterface PostFilterProps {\n activeFilter: FilterState\n countPerStatus: { [key: string]: number }\n filtersChanged: (filter: FilterState) => void\n tags: Tag[]\n}\n\nexport interface FilterItem {\n type: FilterType\n value: string | boolean\n}\n\nconst FilterStateToFilterItems = (filterState: FilterState): FilterItem[] => {\n const filterItems: FilterItem[] = []\n filterState.statuses.forEach((s) => {\n filterItems.push({ type: \"status\", value: s })\n })\n filterState.tags.forEach((t) => {\n filterItems.push({ type: \"tag\", value: t })\n })\n if (filterState.myVotes) {\n filterItems.push({ type: \"myVotes\", value: true })\n }\n return filterItems\n}\n\nconst FilterItemsToFilterState = (filterItems: FilterItem[]): FilterState => {\n const filterState: FilterState = { tags: [], statuses: [], myVotes: false }\n filterItems.forEach((i) => {\n if (i.type === \"tag\") {\n filterState.tags.push(i.value as string)\n } else if (i.type === \"status\") {\n filterState.statuses.push(i.value as string)\n } else if (i.type === \"myVotes\") {\n filterState.myVotes = true\n }\n })\n return filterState\n}\n\nexport const PostFilter = (props: PostFilterProps) => {\n const fider = useFider()\n\n const filterItems: FilterItem[] = FilterStateToFilterItems(props.activeFilter)\n\n const handleChangeFilter = (item: OptionItem) => () => {\n const exists = filterItems.find((i) => i.type === item.type && i.value === item.value)\n const newFilter = exists\n ? filterItems.filter((i) => !(i.type === item.type && i.value === item.value))\n : [...filterItems, { type: item.type, value: item.value }]\n\n props.filtersChanged(FilterItemsToFilterState(newFilter))\n }\n const options: OptionItem[] = []\n\n if (fider.session.isAuthenticated) {\n options.push({ value: true, label: i18n._(\"home.postfilter.option.myvotes\", { message: \"My Votes\" }), type: \"myVotes\" })\n }\n\n PostStatus.All.filter((s) => s.filterable && props.countPerStatus[s.value]).forEach((s) => {\n const id = `enum.poststatus.${s.value.toString()}`\n options.push({\n label: i18n._(id, { message: s.title }),\n value: s.value,\n count: props.countPerStatus[s.value],\n type: \"status\",\n })\n })\n\n props.tags.forEach((t) => {\n options.push({\n label: t.name,\n value: t.slug,\n type: \"tag\",\n })\n })\n\n const filterCount = filterItems.length\n\n return (\n \n \n \n {i18n._(\"home.filter.label\", { message: \"Filter\" })}\n {filterCount > 0 &&
{filterCount}
}\n
\n }\n >\n {options.map((o) => {\n const isChecked = filterItems.find((f) => f.type === o.type && f.value === o.value) !== undefined\n\n return (\n \n \n \n {o.label}\n
\n {o.count && o.count > 0 && {o.count}}\n
\n
\n
\n
\n )\n })}\n \n \n )\n}\n","import React from \"react\"\nimport { Dropdown } from \"@fider/components\"\nimport { HStack } from \"@fider/components/layout\"\nimport { i18n } from \"@lingui/core\"\n\ninterface PostsSortProps {\n value: string\n onChange: (value: string) => void\n}\n\nexport const PostsSort: React.FC = ({ value = \"trending\", onChange }) => {\n const options = [\n { value: \"trending\", label: i18n._(\"home.postfilter.option.trending\", { message: \"Trending\" }) },\n { value: \"most-wanted\", label: i18n._(\"home.postfilter.option.mostwanted\", { message: \"Most Wanted\" }) },\n { value: \"most-discussed\", label: i18n._(\"home.postfilter.option.mostdiscussed\", { message: \"Most Discussed\" }) },\n { value: \"recent\", label: i18n._(\"home.postfilter.option.recent\", { message: \"Recent\" }) },\n ]\n\n const selectedItem = options.find((x) => x.value === value) || options[0]\n\n return (\n \n \n {i18n._(\"home.postsort.label\", { message: \"Sort by:\" })} {selectedItem.label}\n \n }\n >\n {options.map((o) => (\n onChange(o.value)}>\n {o.label}\n \n ))}\n \n \n )\n}\n","import \"./PostsContainer.scss\"\n\nimport React from \"react\"\n\nimport { Post, Tag, CurrentUser } from \"@fider/models\"\nimport { Loader, Input } from \"@fider/components\"\nimport { actions, navigator, querystring } from \"@fider/services\"\nimport IconSearch from \"@fider/assets/images/heroicons-search.svg\"\nimport IconX from \"@fider/assets/images/heroicons-x.svg\"\nimport { PostFilter } from \"./PostFilter\"\nimport { ListPosts } from \"./ListPosts\"\nimport { i18n } from \"@lingui/core\"\nimport { Trans } from \"@lingui/react/macro\"\nimport { PostsSort } from \"./PostsSort\"\n\ninterface PostsContainerProps {\n user?: CurrentUser\n posts: Post[]\n tags: Tag[]\n countPerStatus: { [key: string]: number }\n}\n\ninterface PostsContainerState {\n loading: boolean\n posts?: Post[] // All posts\n view: string\n filterState: FilterState // Filter state\n query: string // Seach query\n limit?: number // Limit\n}\n\nexport interface FilterState {\n tags: string[]\n statuses: string[]\n myVotes: boolean\n}\n\nexport class PostsContainer extends React.Component {\n constructor(props: PostsContainerProps) {\n super(props)\n\n const view = querystring.get(\"view\")\n\n this.state = {\n posts: this.props.posts,\n loading: false,\n view,\n query: querystring.get(\"query\"),\n filterState: { tags: querystring.getArray(\"tags\"), statuses: querystring.getArray(\"statuses\"), myVotes: querystring.get(\"myvotes\") === \"true\" },\n limit: querystring.getNumber(\"limit\"),\n }\n }\n\n private changeFilterCriteria(obj: Pick, reset: boolean): void {\n this.setState(obj, () => {\n const query = this.state.query.trim().toLowerCase()\n navigator.replaceState(\n querystring.stringify({\n statuses: this.state.filterState.statuses,\n tags: this.state.filterState.tags,\n myvotes: this.state.filterState.myVotes ? \"true\" : undefined,\n query,\n view: this.state.view,\n limit: this.state.limit,\n })\n )\n\n this.searchPosts(\n query,\n this.state.view || \"trending\",\n this.state.limit,\n this.state.filterState.tags,\n this.state.filterState.statuses,\n this.state.filterState.myVotes,\n reset\n )\n })\n }\n\n private timer?: number\n private async searchPosts(query: string, view: string, limit: number | undefined, tags: string[], statuses: string[], myVotes: boolean, reset: boolean) {\n window.clearTimeout(this.timer)\n this.setState({ posts: reset ? undefined : this.state.posts, loading: true })\n this.timer = window.setTimeout(() => {\n actions.searchPosts({ query, view: view, limit, tags, statuses, myVotes }).then((response) => {\n if (response.ok && this.state.loading) {\n this.setState({ loading: false, posts: response.data })\n }\n })\n }, 500)\n }\n\n private handleFilterChanged = (filterState: FilterState) => {\n this.changeFilterCriteria({ filterState }, true)\n }\n\n private handleSearchFilterChanged = (query: string) => {\n this.changeFilterCriteria({ query }, true)\n }\n\n private handleSortChanged = (view: string) => {\n this.changeFilterCriteria({ view }, true)\n }\n\n private clearSearch = () => {\n this.changeFilterCriteria({ query: \"\" }, true)\n }\n\n private showMore = (event: React.MouseEvent | React.TouchEvent): void => {\n event.preventDefault()\n this.changeFilterCriteria({ limit: (this.state.limit || 30) + 10 }, false)\n }\n\n private getShowMoreLink = (): string | undefined => {\n if (this.state.posts && this.state.posts.length >= (this.state.limit || 30)) {\n return querystring.set(\"limit\", (this.state.limit || 30) + 10)\n }\n }\n\n public render() {\n const showMoreLink = this.getShowMoreLink()\n\n return (\n
\n
\n {!this.state.query && (\n
\n \n \n
\n )}\n
\n \n
\n
\n \n {this.state.loading && }\n {showMoreLink && (\n \n )}\n
\n )\n }\n}\n","import \"./Home.page.scss\"\nimport NoDataIllustration from \"@fider/assets/images/undraw-no-data.svg\"\n\nimport React, { useState } from \"react\"\nimport { Post, Tag, PostStatus } from \"@fider/models\"\nimport { Markdown, Hint, PoweredByFider, Icon, Header } from \"@fider/components\"\nimport { SimilarPosts } from \"./components/SimilarPosts\"\nimport { PostInput } from \"./components/PostInput\"\nimport { PostsContainer } from \"./components/PostsContainer\"\nimport { useFider } from \"@fider/hooks\"\nimport { VStack } from \"@fider/components/layout\"\n\nimport { i18n } from \"@lingui/core\"\nimport { Trans } from \"@lingui/react/macro\"\n\nexport interface HomePageProps {\n posts: Post[]\n tags: Tag[]\n countPerStatus: { [key: string]: number }\n}\n\nexport interface HomePageState {\n title: string\n}\n\nconst Lonely = () => {\n const fider = useFider()\n\n return (\n
\n \n

\n \n It's recommended that you create at least 3 suggestions here before sharing this site. The initial content is important to\n start engaging your audience.\n \n

\n
\n \n

\n No posts have been created yet.\n

\n
\n )\n}\n\nconst HomePage = (props: HomePageProps) => {\n const fider = useFider()\n const [title, setTitle] = useState(\"\")\n\n const defaultWelcomeMessage = i18n._(\"home.form.defaultwelcomemessage\", {\n message: `We'd love to hear what you're thinking about.\n\nWhat can we do better? This is the place for you to vote, discuss and share ideas.`,\n })\n\n const defaultInvitation = i18n._(\"home.form.defaultinvitation\", {\n message: \"Enter your suggestion here...\",\n })\n\n const isLonely = () => {\n const len = Object.keys(props.countPerStatus).length\n if (len === 0) {\n return true\n }\n\n if (len === 1 && PostStatus.Deleted.value in props.countPerStatus) {\n return true\n }\n\n return false\n }\n\n return (\n <>\n
\n
\n
\n \n \n \n \n \n
\n
\n {isLonely() ? (\n \n ) : title ? (\n \n ) : (\n \n )}\n \n
\n
\n \n )\n}\n\nexport default HomePage\n","import SpriteSymbol from \"../../../node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"heroicons-search\",\n \"use\": \"heroicons-search-usage\",\n \"viewBox\": \"0 0 24 24\",\n \"content\": \"\"\n});\nvar result = sprite.add(symbol);\nexport default symbol"],"names":["symbol","ListPostItem","props","React","HStack","spacing","align","className","VoteCounter","post","VStack","status","ResponseLozenge","response","small","justify","href","number","slug","title","commentsCount","Icon","sprite","IconChatAlt2","Markdown","maxLength","text","description","style","tags","length","map","tag","ShowTag","key","id","link","ListPosts","posts","emptyText","divide","filter","indexOf","SimilarPosts","constructor","super","_defineProperty","this","state","loading","actions","query","then","x","ok","setState","data","getDerivedStateFromProps","nextProps","prevState","componentDidMount","loadSimilarPosts","componentDidUpdate","window","clearTimeout","timer","setTimeout","render","i18n","_","message","subtitle","PageTitle","Loader","CACHE_TITLE_KEY","CACHE_DESCRIPTION_KEY","PostInput","getCachedValue","fider","session","isAuthenticated","cache","get","useFider","titleRef","useRef","setTitle","useState","setDescription","isSignInModalOpen","setIsSignInModalOpen","attachments","setAttachments","error","setError","undefined","useEffect","onTitleChanged","SignInModal","isOpen","onClose","hideModal","Form","Input","field","disabled","isReadOnly","noTabFocus","inputRef","onFocus","handleTitleFocus","current","blur","value","onChange","set","placeholder","TextArea","minRows","MultiImageUploader","maxUploads","Button","type","variant","onClick","async","result","remove","location","event","preventEnable","_Trans","PostFilter","filterItems","filterState","statuses","forEach","s","push","t","myVotes","FilterStateToFilterItems","activeFilter","options","label","PostStatus","All","filterable","countPerStatus","toString","count","name","filterCount","Dropdown","renderHandle","HeroIconFilter","o","isChecked","find","f","ListItem","item","newFilter","i","filtersChanged","FilterItemsToFilterState","Checkbox","checked","PostsSort","selectedItem","PostsContainer","changeFilterCriteria","view","preventDefault","limit","querystring","obj","reset","trim","toLowerCase","navigator","replaceState","myvotes","searchPosts","showMoreLink","getShowMoreLink","handleFilterChanged","handleSortChanged","icon","IconX","IconSearch","onIconClick","clearSearch","handleSearchFilterChanged","showMore","Lonely","Hint","permanentCloseKey","condition","user","isAdministrator","components","0","NoDataIllustration","height","defaultWelcomeMessage","defaultInvitation","Header","tenant","welcomeMessage","invitation","PoweredByFider","slot","isLonely","len","Object","keys","Deleted"],"sourceRoot":""}