{"version":3,"sources":["webpack:///./public/pages/Home/components/ListPosts.tsx","webpack:///./public/pages/Home/components/SimilarPosts.tsx","webpack:///./public/pages/Home/components/PostInput.tsx","webpack:///./public/pages/Home/components/PostFilter.tsx","webpack:///./public/pages/Home/components/TagsFilter.tsx","webpack:///./public/pages/Home/components/PostsContainer.tsx","webpack:///./public/pages/Home/Home.page.tsx"],"names":["ListPostItem","props","react_default","a","createElement","components","post","className","commentsCount","fa","href","number","slug","title","text","description","style","showUser","status","response","tags","map","tag","key","id","size","ListPosts_ListPosts","posts","length","emptyText","divided","filter","indexOf","SimilarPosts_SimilarPosts","_super","SimilarPosts","_this","call","this","loadSimilarPosts","state","loading","services","searchPosts","query","then","x","ok","setState","data","tslib_es6","getDerivedStateFromProps","nextProps","prevState","prototype","componentDidMount","componentDidUpdate","window","clearTimeout","timer","setTimeout","render","Fragment","subtitle","icon","dividing","Component","CACHE_TITLE_KEY","CACHE_DESCRIPTION_KEY","PostInput_PostInput","PostInput","handleTitleFocus","session","isAuthenticated","blur","showSignIn","setTitle","set","onTitleChanged","setDescription","setAttachments","attachments","submit","event","createPost","result","_a","sent","error","undefined","remove","location","preventEnable","setInputRef","e","get","focused","details","field","onChange","value","minRows","placeholder","maxUploads","previewMaxWidth","color","onClick","isOpen","noTabFocus","inputRef","onFocus","maxLength","PostFilter_PostFilter","options","label","push","models","All","s","filterable","countPerStatus","forEach","activeView","header","inline","items","defaultValue","item","viewChanged","TagsFilter_TagsFilter","TagsFilter","selected","idx","splice","concat","selectionChanged","renderText","defaultSelection","t","name","ShowTag","circular","highlightSelected","PostsContainer_PostsContainer","PostsContainer","handleViewChanged","view","changeFilterCriteria","handleTagsFilterChanged","handleSearchFilterChanged","clearSearch","showMore","preventDefault","limit","getShowMoreLink","getArray","getNumber","obj","reset","trim","toLowerCase","replaceState","stringify","showMoreLink","onIconClick","onTouchEnd","Lonely","permanentCloseKey","condition","user","isAdministrator","Home_page_HomePage","HomePage","isLonely","len","Object","keys","Deleted","tenant","welcomeMessage","invitation"],"mappings":"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","file":"js/Home.page.c27cb2c386299c5a1aa5.js","sourcesContent":["import \"./ListPosts.scss\";\n\nimport React from \"react\";\nimport { Post, Tag, CurrentUser } from \"@fider/models\";\nimport { ShowTag, ShowPostResponse, VoteCounter, MultiLineText, ListItem, List } from \"@fider/components\";\nimport { FaRegComments } from \"react-icons/fa\";\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 {props.post.commentsCount > 0 && (\n
\n {props.post.commentsCount} \n
\n )}\n \n {props.post.title}\n \n \n \n {props.tags.map(tag => (\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 { Heading, Loader } from \"@fider/components\";\nimport { ListPosts } from \"./ListPosts\";\nimport { actions } from \"@fider/services\";\nimport { FaRegLightbulb } from \"react-icons/fa\";\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 return (\n <>\n \n {this.state.loading ? (\n \n ) : (\n \n )}\n \n );\n }\n}\n","import React from \"react\";\nimport { Button, ButtonClickEvent, Input, Form, TextArea, MultiImageUploader } from \"@fider/components\";\nimport { SignInModal } from \"@fider/components\";\nimport { cache, actions, Failure, Fider } from \"@fider/services\";\nimport { ImageUpload } from \"@fider/models\";\n\ninterface PostInputProps {\n placeholder: string;\n onTitleChanged: (title: string) => void;\n}\n\ninterface PostInputState {\n title: string;\n description: string;\n attachments: ImageUpload[];\n focused: boolean;\n showSignIn: boolean;\n error?: Failure;\n}\n\nconst CACHE_TITLE_KEY = \"PostInput-Title\";\nconst CACHE_DESCRIPTION_KEY = \"PostInput-Description\";\n\nexport class PostInput extends React.Component {\n private title?: HTMLInputElement;\n\n constructor(props: PostInputProps) {\n super(props);\n this.state = {\n title: (Fider.session.isAuthenticated && cache.session.get(CACHE_TITLE_KEY)) || \"\",\n description: (Fider.session.isAuthenticated && cache.session.get(CACHE_DESCRIPTION_KEY)) || \"\",\n focused: false,\n showSignIn: false,\n attachments: []\n };\n\n if (this.state.title) {\n this.props.onTitleChanged(this.state.title);\n }\n }\n\n private handleTitleFocus = () => {\n if (!Fider.session.isAuthenticated && this.title) {\n this.title.blur();\n this.setState({ showSignIn: true });\n }\n };\n\n private setTitle = (title: string) => {\n cache.session.set(CACHE_TITLE_KEY, title);\n this.setState({ title });\n this.props.onTitleChanged(title);\n };\n\n private setDescription = (description: string) => {\n cache.session.set(CACHE_DESCRIPTION_KEY, description);\n this.setState({ description });\n };\n\n private setAttachments = (attachments: ImageUpload[]) => {\n this.setState({ attachments });\n };\n\n private submit = async (event: ButtonClickEvent) => {\n if (this.state.title) {\n const result = await actions.createPost(this.state.title, this.state.description, this.state.attachments);\n if (result.ok) {\n this.setState({ error: undefined });\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 this.setState({ error: result.error });\n }\n }\n };\n\n private setInputRef = (e: HTMLInputElement) => {\n this.title = e;\n };\n\n public render() {\n const details = (\n <>\n \n \n \n \n );\n\n return (\n <>\n \n
\n \n {this.state.title && details}\n \n \n );\n }\n}\n","import \"./PostFilter.scss\";\n\nimport React from \"react\";\nimport { PostStatus } from \"@fider/models\";\nimport { DropDown, DropDownItem } from \"@fider/components\";\nimport { Fider } from \"@fider/services\";\n\ninterface PostFilterProps {\n activeView: string;\n countPerStatus: { [key: string]: number };\n viewChanged: (name: string) => void;\n}\n\nexport const PostFilter = (props: PostFilterProps) => {\n const handleChangeView = (item: DropDownItem) => {\n props.viewChanged(item.value as string);\n };\n\n const options: DropDownItem[] = [\n { value: \"trending\", label: \"Trending\" },\n { value: \"recent\", label: \"Recent\" },\n { value: \"most-wanted\", label: \"Most Wanted\" },\n { value: \"most-discussed\", label: \"Most Discussed\" }\n ];\n\n if (Fider.session.isAuthenticated) {\n options.push({ value: \"my-votes\", label: \"My Votes\" });\n }\n\n PostStatus.All.filter(s => s.filterable && props.countPerStatus[s.value]).forEach(s => {\n options.push({\n label: s.title,\n value: s.value,\n render: (\n \n {s.title} {props.countPerStatus[s.value]}\n \n )\n });\n });\n\n const viewExists = options.filter(x => x.value === props.activeView).length > 0;\n const activeView = viewExists ? props.activeView : \"trending\";\n\n return (\n
\n View\n \n
\n );\n};\n","import \"./TagsFilter.scss\";\n\nimport React from \"react\";\nimport { Tag } from \"@fider/models\";\nimport { ShowTag } from \"@fider/components/ShowTag\";\nimport { DropDown, DropDownItem } from \"@fider/components\";\nimport { FaCheck } from \"react-icons/fa\";\n\ninterface TagsFilterProps {\n tags: Tag[];\n defaultSelection: string[];\n selectionChanged: (selected: string[]) => void;\n}\n\ninterface TagsFilterState {\n selected: string[];\n}\n\nexport class TagsFilter extends React.Component {\n constructor(props: TagsFilterProps) {\n super(props);\n this.state = {\n selected: props.defaultSelection\n };\n }\n\n private onChange = (item: DropDownItem) => {\n let selected = [];\n const idx = this.state.selected.indexOf(item.value as string);\n if (idx >= 0) {\n selected = this.state.selected.splice(idx, 1) && this.state.selected;\n } else {\n selected = this.state.selected.concat(item.value as string);\n }\n this.setState({ selected });\n this.props.selectionChanged(selected);\n };\n\n private renderText = () => {\n const text =\n this.state.selected.length === 0\n ? \"any tag\"\n : this.state.selected.length === 1\n ? \"1 tag\"\n : `${this.state.selected.length} tags`;\n return <>{text};\n };\n\n public render() {\n if (this.props.tags.length === 0) {\n return null;\n }\n\n const items = this.props.tags.map(t => {\n return {\n value: t.slug,\n label: t.name,\n render: (\n
= 0 ? \"selected-tag\" : \"\"}>\n \n \n {t.name}\n
\n )\n };\n });\n\n return (\n
\n with\n \n
\n );\n }\n}\n","import React from \"react\";\n\nimport { Post, Tag, CurrentUser } from \"@fider/models\";\nimport { Loader, Field, Input } from \"@fider/components\";\nimport { actions, navigator, querystring } from \"@fider/services\";\nimport { FaTimes, FaSearch } from \"react-icons/fa\";\nimport { PostFilter } from \"./PostFilter\";\nimport { ListPosts } from \"./ListPosts\";\nimport { TagsFilter } from \"./TagsFilter\";\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[];\n view: string;\n tags: string[];\n query: string;\n limit?: number;\n}\n\nexport class PostsContainer extends React.Component {\n constructor(props: PostsContainerProps) {\n super(props);\n\n this.state = {\n posts: this.props.posts,\n loading: false,\n view: querystring.get(\"view\"),\n query: querystring.get(\"query\"),\n tags: querystring.getArray(\"tags\"),\n limit: querystring.getNumber(\"limit\")\n };\n }\n\n private changeFilterCriteria(\n obj: Pick,\n reset: boolean\n ): void {\n this.setState(obj, () => {\n const query = this.state.query.trim().toLowerCase();\n navigator.replaceState(\n querystring.stringify({\n tags: this.state.tags,\n query,\n view: this.state.view,\n limit: this.state.limit\n })\n );\n\n this.searchPosts(query, this.state.view, this.state.limit, this.state.tags, reset);\n });\n }\n\n private timer?: number;\n private async searchPosts(query: string, view: string, limit: number | undefined, tags: string[], 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, limit, tags }).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 handleViewChanged = (view: string) => {\n this.changeFilterCriteria({ view }, true);\n };\n\n private handleTagsFilterChanged = (tags: string[]) => {\n this.changeFilterCriteria({ tags }, true);\n };\n\n private handleSearchFilterChanged = (query: string) => {\n this.changeFilterCriteria({ query }, 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 return (\n <>\n
\n {!this.state.query && (\n
\n \n \n \n \n
\n )}\n
\n \n
\n
\n \n {this.state.loading && }\n {showMoreLink && (\n \n View more posts\n \n )}\n \n );\n }\n}\n","import \"./Home.page.scss\";\n\nimport React from \"react\";\nimport { Post, Tag, PostStatus } from \"@fider/models\";\nimport { MultiLineText, Hint } from \"@fider/components\";\nimport { Fider } from \"@fider/services\";\nimport { SimilarPosts } from \"./components/SimilarPosts\";\nimport { FaRegLightbulb } from \"react-icons/fa\";\nimport { PostInput } from \"./components/PostInput\";\nimport { PostsContainer } from \"./components/PostsContainer\";\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 return (\n
\n \n It's recommended that you post at least 3 suggestions here before sharing this site. The\n initial content is key to start the interactions with your audience.\n \n

\n \n

\n

It's lonely out here. Start by sharing a suggestion!

\n
\n );\n};\n\nconst defaultWelcomeMessage = `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\nexport default class HomePage extends React.Component {\n constructor(props: HomePageProps) {\n super(props);\n this.state = {\n title: \"\"\n };\n }\n\n private isLonely(): boolean {\n const len = Object.keys(this.props.countPerStatus).length;\n if (len === 0) {\n return true;\n }\n\n if (len === 1 && PostStatus.Deleted.value in this.props.countPerStatus) {\n return true;\n }\n\n return false;\n }\n\n private setTitle = async (title: string) => {\n this.setState({ title });\n };\n\n public render() {\n return (\n
\n
\n
\n \n \n
\n
\n {this.isLonely() ? (\n \n ) : this.state.title ? (\n \n ) : (\n \n )}\n
\n
\n
\n );\n }\n}\n"],"sourceRoot":""}