Compare commits
	
		
			441 Commits
		
	
	
		
			master
			...
			201-issue-
		
	
	| Author | SHA1 | Date | 
|---|---|---|
| 
							
							
								
									
								
								 | 
						8047d02ea6 | |
| 
							
							
								
									
								
								 | 
						030cc74b5f | |
| 
							
							
								
									
								
								 | 
						da8c57e369 | |
| 
							
							
								
									
								
								 | 
						cda59f286b | |
| 
							
							
								
									
								
								 | 
						20198a9071 | |
| 
							
							
								
									
								
								 | 
						27db94367b | |
| 
							
							
								
									
								
								 | 
						130c99021c | |
| 
							
							
								
									
								
								 | 
						6ea050fe0b | |
| 
							
							
								
									
								
								 | 
						e3607df6bf | |
| 
							
							
								
									
								
								 | 
						9d1e10565b | |
| 
							
							
								
									
								
								 | 
						4ee53476e5 | |
| 
							
							
								 | 
						1784dd4bbb | |
| 
							
							
								 | 
						11ac9b0232 | |
| 
							
							
								 | 
						6668d70cfb | |
| 
							
							
								
									
								
								 | 
						252ef5ae8d | |
| 
							
							
								 | 
						30e559daaf | |
| 
							
							
								
									
								
								 | 
						7c4489eb0e | |
| 
							
							
								
									
								
								 | 
						d10c662e0f | |
| 
							
							
								
									
								
								 | 
						3df047c532 | |
| 
							
							
								 | 
						a06fbe5cf3 | |
| 
							
							
								 | 
						e7ac84ea84 | |
| 
							
							
								 | 
						bc684f7950 | |
| 
							
							
								
									
								
								 | 
						d409dedef8 | |
| 
							
							
								
									
								
								 | 
						c5bb85e81e | |
| 
							
							
								
									
								
								 | 
						77c3ece1cf | |
| 
							
							
								
									
								
								 | 
						197d1d5e47 | |
| 
							
							
								
									
								
								 | 
						1c6fa54f3a | |
| 
							
							
								
									
								
								 | 
						b840ebe654 | |
| 
							
							
								
									
								
								 | 
						0ed28237aa | |
| 
							
							
								
									
								
								 | 
						de607882a1 | |
| 
							
							
								
									
								
								 | 
						200863e797 | |
| 
							
							
								
									
								
								 | 
						26e65196da | |
| 
							
							
								
									
								
								 | 
						a1023fda37 | |
| 
							
							
								
									
								
								 | 
						99788e7121 | |
| 
							
							
								
									
								
								 | 
						8f7c15381e | |
| 
							
							
								
									
								
								 | 
						59c393390c | |
| 
							
							
								
									
								
								 | 
						d5c26c703d | |
| 
							
							
								 | 
						4707468226 | |
| 
							
							
								 | 
						ce0f2046b3 | |
| 
							
							
								 | 
						a44f28f2fb | |
| 
							
							
								
									
								
								 | 
						27f3616ea5 | |
| 
							
							
								
									
								
								 | 
						395086122d | |
| 
							
							
								 | 
						c619cc396a | |
| 
							
							
								 | 
						2ff3db6615 | |
| 
							
							
								 | 
						dc3977ef44 | |
| 
							
							
								 | 
						1e8d3f79b3 | |
| 
							
							
								 | 
						1b99458b7d | |
| 
							
							
								 | 
						5a2f0846d8 | |
| 
							
							
								 | 
						ac80892afb | |
| 
							
							
								 | 
						47efe0bbdf | |
| 
							
							
								 | 
						bd79c3a6a8 | |
| 
							
							
								 | 
						2bce41dbc0 | |
| 
							
							
								 | 
						594b59227d | |
| 
							
							
								 | 
						0a7cc3c1db | |
| 
							
							
								
									
								
								 | 
						fb02a51689 | |
| 
							
							
								
									
								
								 | 
						0df8c84a92 | |
| 
							
							
								
									
								
								 | 
						a329ec3ee0 | |
| 
							
							
								 | 
						ac2f644334 | |
| 
							
							
								 | 
						1da7b2c63f | |
| 
							
							
								 | 
						d2c9915669 | |
| 
							
							
								 | 
						069b4592b1 | |
| 
							
							
								 | 
						0e9c92f744 | |
| 
							
							
								
									
								
								 | 
						8cf129dc64 | |
| 
							
							
								
									
								
								 | 
						8b6b29ffe5 | |
| 
							
							
								
									
								
								 | 
						4556aaba98 | |
| 
							
							
								
									
								
								 | 
						f065a0418b | |
| 
							
							
								
									
								
								 | 
						36d2f9817a | |
| 
							
							
								
									
								
								 | 
						44445ec493 | |
| 
							
							
								
									
								
								 | 
						5b2be99a09 | |
| 
							
							
								
									
								
								 | 
						842ec2d04d | |
| 
							
							
								
									
								
								 | 
						d0d1d6e396 | |
| 
							
							
								
									
								
								 | 
						d13bdb5dd1 | |
| 
							
							
								
									
								
								 | 
						8131d1c9fe | |
| 
							
							
								 | 
						149e07bc88 | |
| 
							
							
								 | 
						e3b50e63d5 | |
| 
							
							
								 | 
						328265cb8c | |
| 
							
							
								 | 
						f3ba61f060 | |
| 
							
							
								
									
								
								 | 
						47db7defbf | |
| 
							
							
								
									
								
								 | 
						64f9216b5f | |
| 
							
							
								
									
								
								 | 
						5db4e8ece3 | |
| 
							
							
								
									
								
								 | 
						66bd6c4f78 | |
| 
							
							
								
									
								
								 | 
						03e12adbc2 | |
| 
							
							
								
									
								
								 | 
						ec452b0a7e | |
| 
							
							
								
									
								
								 | 
						90fae98adb | |
| 
							
							
								
									
								
								 | 
						7a192d9a68 | |
| 
							
							
								
									
								
								 | 
						1adaa5bec7 | |
| 
							
							
								
									
								
								 | 
						84c2aff911 | |
| 
							
							
								
									
								
								 | 
						2c2e54bd19 | |
| 
							
							
								
									
								
								 | 
						6a591a5f10 | |
| 
							
							
								
									
								
								 | 
						c476a6d576 | |
| 
							
							
								
									
								
								 | 
						bf02f49fe0 | |
| 
							
							
								 | 
						9da33006d9 | |
| 
							
							
								 | 
						49cb71e767 | |
| 
							
							
								 | 
						98ef5dab17 | |
| 
							
							
								
									
								
								 | 
						aacb019a58 | |
| 
							
							
								
									
								
								 | 
						d42ffc2893 | |
| 
							
							
								
									
								
								 | 
						630a633bfb | |
| 
							
							
								
									
								
								 | 
						1fd25ee469 | |
| 
							
							
								
									
								
								 | 
						6c6b944da7 | |
| 
							
							
								 | 
						f9e2626e53 | |
| 
							
							
								 | 
						8e63bcae3c | |
| 
							
							
								
									
								
								 | 
						c5173895fd | |
| 
							
							
								
									
								
								 | 
						1d6aca7d0c | |
| 
							
							
								 | 
						d2c2b8739c | |
| 
							
							
								 | 
						fd54abcc49 | |
| 
							
							
								 | 
						03e78f24c5 | |
| 
							
							
								 | 
						e1152dd09f | |
| 
							
							
								 | 
						72a2c29c1f | |
| 
							
							
								 | 
						d1976e988b | |
| 
							
							
								 | 
						3b01bbea90 | |
| 
							
							
								 | 
						9336bf0bef | |
| 
							
							
								 | 
						cf8fc8c73e | |
| 
							
							
								 | 
						1ccadfe6a7 | |
| 
							
							
								 | 
						9490351c5b | |
| 
							
							
								 | 
						f4e1cbef4d | |
| 
							
							
								 | 
						efbdd0b78c | |
| 
							
							
								 | 
						01bd394a0d | |
| 
							
							
								 | 
						f8909acc54 | |
| 
							
							
								 | 
						2a8233cceb | |
| 
							
							
								 | 
						ad4d194759 | |
| 
							
							
								 | 
						81cb378a1a | |
| 
							
							
								 | 
						1eb3fa41e6 | |
| 
							
							
								 | 
						1865ce73ae | |
| 
							
							
								 | 
						d7072e64cb | |
| 
							
							
								 | 
						079e439bf0 | |
| 
							
							
								 | 
						951031592c | |
| 
							
							
								 | 
						b9d79c8402 | |
| 
							
							
								 | 
						421f56b709 | |
| 
							
							
								 | 
						2dcfdf495f | |
| 
							
							
								 | 
						a9c02244a8 | |
| 
							
							
								 | 
						456d9ce4d0 | |
| 
							
							
								 | 
						9e7ac1d91f | |
| 
							
							
								 | 
						c8da611700 | |
| 
							
							
								 | 
						5d4aa25259 | |
| 
							
							
								 | 
						d6339121b7 | |
| 
							
							
								 | 
						ca6f1d1496 | |
| 
							
							
								 | 
						88ca9b6f11 | |
| 
							
							
								 | 
						ddaa33c9ce | |
| 
							
							
								 | 
						149ccd7c11 | |
| 
							
							
								 | 
						85e44d8c92 | |
| 
							
							
								 | 
						b7984b3748 | |
| 
							
							
								 | 
						c89e501005 | |
| 
							
							
								 | 
						2cea9bc217 | |
| 
							
							
								 | 
						b6b21a19c7 | |
| 
							
							
								 | 
						553351d1d9 | |
| 
							
							
								 | 
						04a9a2edfe | |
| 
							
							
								 | 
						18bab545e7 | |
| 
							
							
								 | 
						08a1b4a1a6 | |
| 
							
							
								 | 
						387cf0ebca | |
| 
							
							
								
									
								
								 | 
						78e8db6e1d | |
| 
							
							
								
									
								
								 | 
						b26893250c | |
| 
							
							
								
									
								
								 | 
						2ad4f34bd0 | |
| 
							
							
								
									
								
								 | 
						5e4dc43e02 | |
| 
							
							
								
									
								
								 | 
						772662f796 | |
| 
							
							
								
									
								
								 | 
						30f6ca3be7 | |
| 
							
							
								
									
								
								 | 
						6d66a783b7 | |
| 
							
							
								
									
								
								 | 
						f3f02e41ed | |
| 
							
							
								
									
								
								 | 
						788256782b | |
| 
							
							
								
									
								
								 | 
						46db01d30b | |
| 
							
							
								
									
								
								 | 
						40d0c8d1d1 | |
| 
							
							
								
									
								
								 | 
						a2af17451d | |
| 
							
							
								
									
								
								 | 
						19620aabcc | |
| 
							
							
								
									
								
								 | 
						7d0bf63b22 | |
| 
							
							
								
									
								
								 | 
						8a4ffbfe93 | |
| 
							
							
								
									
								
								 | 
						06468fa601 | |
| 
							
							
								
									
								
								 | 
						cad12bd638 | |
| 
							
							
								
									
								
								 | 
						04da74a2c4 | |
| 
							
							
								
									
								
								 | 
						a1a0534a1f | |
| 
							
							
								 | 
						05600cb829 | |
| 
							
							
								 | 
						999175a246 | |
| 
							
							
								 | 
						ee456580d3 | |
| 
							
							
								 | 
						150171fd3b | |
| 
							
							
								 | 
						f74c539781 | |
| 
							
							
								 | 
						f810aa560d | |
| 
							
							
								
									
								
								 | 
						2746d29fa4 | |
| 
							
							
								 | 
						ec5c738e6b | |
| 
							
							
								
									
								
								 | 
						f31576573d | |
| 
							
							
								 | 
						64097d735e | |
| 
							
							
								
									
								
								 | 
						d517a19872 | |
| 
							
							
								
									
								
								 | 
						774c1d0657 | |
| 
							
							
								
									
								
								 | 
						c3d114f61e | |
| 
							
							
								
									
								
								 | 
						614b058b13 | |
| 
							
							
								
									
								
								 | 
						6fe5a6e1f2 | |
| 
							
							
								
									
								
								 | 
						97deae313e | |
| 
							
							
								
									
								
								 | 
						a9d1a9dd26 | |
| 
							
							
								 | 
						66511f4e8a | |
| 
							
							
								
									
								
								 | 
						cf2fbfcd9c | |
| 
							
							
								
									
								
								 | 
						ec2c56ae9c | |
| 
							
							
								
									
								
								 | 
						04e6ea02da | |
| 
							
							
								
									
								
								 | 
						8db2845bd5 | |
| 
							
							
								
									
								
								 | 
						a3936c5fdc | |
| 
							
							
								
									
								
								 | 
						7e7f917750 | |
| 
							
							
								
									
								
								 | 
						c50fbbeaf8 | |
| 
							
							
								
									
								
								 | 
						de69d9f4ab | |
| 
							
							
								
									
								
								 | 
						11aff885e7 | |
| 
							
							
								
									
								
								 | 
						25344faca0 | |
| 
							
							
								
									
								
								 | 
						8096200886 | |
| 
							
							
								
									
								
								 | 
						20f6aeb376 | |
| 
							
							
								
									
								
								 | 
						259444b371 | |
| 
							
							
								
									
								
								 | 
						99e9ef98f6 | |
| 
							
							
								
									
								
								 | 
						5689f3053e | |
| 
							
							
								
									
								
								 | 
						70174ad5df | |
| 
							
							
								
									
								
								 | 
						c1106e7d63 | |
| 
							
							
								
									
								
								 | 
						8dd3132ec4 | |
| 
							
							
								
									
								
								 | 
						dd54ee2ce5 | |
| 
							
							
								
									
								
								 | 
						3cb8e47628 | |
| 
							
							
								
									
								
								 | 
						2a325d4e2e | |
| 
							
							
								
									
								
								 | 
						435af70439 | |
| 
							
							
								
									
								
								 | 
						dc65cdda4f | |
| 
							
							
								
									
								
								 | 
						f6ce86909f | |
| 
							
							
								
									
								
								 | 
						980ecd9e52 | |
| 
							
							
								 | 
						e4f35ebfa0 | |
| 
							
							
								
									
								
								 | 
						2fbc57ee24 | |
| 
							
							
								
									
								
								 | 
						d4113a2260 | |
| 
							
							
								
									
								
								 | 
						314f825a78 | |
| 
							
							
								
									
								
								 | 
						63a355d10c | |
| 
							
							
								
									
								
								 | 
						18fd3064fc | |
| 
							
							
								 | 
						ebd54ad24f | |
| 
							
							
								 | 
						0175d9065d | |
| 
							
							
								 | 
						5b5d8835af | |
| 
							
							
								 | 
						7d42b26eba | |
| 
							
							
								 | 
						6ebbdb5a72 | |
| 
							
							
								 | 
						e1bcdd3995 | |
| 
							
							
								 | 
						bf2c9b374a | |
| 
							
							
								 | 
						99064e9a4d | |
| 
							
							
								 | 
						cc0fae132c | |
| 
							
							
								 | 
						8149ade113 | |
| 
							
							
								 | 
						2d0d55358d | |
| 
							
							
								 | 
						0233e0c0b4 | |
| 
							
							
								 | 
						169585b32e | |
| 
							
							
								 | 
						210b30c5a6 | |
| 
							
							
								
									
								
								 | 
						2a69b1ff16 | |
| 
							
							
								
									
								
								 | 
						176a6931ce | |
| 
							
							
								
									
								
								 | 
						399346b0b9 | |
| 
							
							
								 | 
						77b0755a8e | |
| 
							
							
								
									
								
								 | 
						ef53fa88b5 | |
| 
							
							
								 | 
						37e764de60 | |
| 
							
							
								 | 
						7416803b1a | |
| 
							
							
								 | 
						50995a06e3 | |
| 
							
							
								 | 
						d710e7c0ed | |
| 
							
							
								
									
								
								 | 
						ab338109d1 | |
| 
							
							
								 | 
						69775a366d | |
| 
							
							
								 | 
						ff5c6e55ff | |
| 
							
							
								 | 
						dcb77ae10e | |
| 
							
							
								 | 
						99d015475b | |
| 
							
							
								 | 
						235e3f7bc9 | |
| 
							
							
								
									
								
								 | 
						6d6fafd177 | |
| 
							
							
								
									
								
								 | 
						85ae89df61 | |
| 
							
							
								 | 
						4b08969ebe | |
| 
							
							
								 | 
						4bbe8dfea5 | |
| 
							
							
								 | 
						274efecee4 | |
| 
							
							
								 | 
						0dbf6acfc4 | |
| 
							
							
								 | 
						59c0ced918 | |
| 
							
							
								 | 
						3fc01cc033 | |
| 
							
							
								 | 
						5ba3fce7e3 | |
| 
							
							
								 | 
						24edd8b70a | |
| 
							
							
								 | 
						48f5c58f4a | |
| 
							
							
								
									
								
								 | 
						83383888d2 | |
| 
							
							
								
									
								
								 | 
						da332fb887 | |
| 
							
							
								
									
								
								 | 
						8b04701111 | |
| 
							
							
								
									
								
								 | 
						b58d5ca956 | |
| 
							
							
								 | 
						e059363d53 | |
| 
							
							
								 | 
						ec0d604e34 | |
| 
							
							
								 | 
						e56665ff79 | |
| 
							
							
								 | 
						770bbfed43 | |
| 
							
							
								 | 
						8e98739f99 | |
| 
							
							
								
									
								
								 | 
						9852159e9a | |
| 
							
							
								
									
								
								 | 
						0d8fc87061 | |
| 
							
							
								
									
								
								 | 
						5f1a962da2 | |
| 
							
							
								
									
								
								 | 
						abca2c58a1 | |
| 
							
							
								
									
								
								 | 
						8e97490a16 | |
| 
							
							
								
									
								
								 | 
						226e0b81a6 | |
| 
							
							
								
									
								
								 | 
						3cf74d6c9d | |
| 
							
							
								
									
								
								 | 
						f884fa7aa5 | |
| 
							
							
								
									
								
								 | 
						a47f0c1c76 | |
| 
							
							
								
									
								
								 | 
						fb49db7eae | |
| 
							
							
								
									
								
								 | 
						b63fe2b7ec | |
| 
							
							
								
									
								
								 | 
						dd9ab06933 | |
| 
							
							
								
									
								
								 | 
						9297bdd38f | |
| 
							
							
								
									
								
								 | 
						0399891d7a | |
| 
							
							
								 | 
						d52b47a2c1 | |
| 
							
							
								
									
								
								 | 
						92d1457386 | |
| 
							
							
								 | 
						36e5839b04 | |
| 
							
							
								 | 
						8906880a60 | |
| 
							
							
								
									
								
								 | 
						af57c984e9 | |
| 
							
							
								
									
								
								 | 
						a9d851f163 | |
| 
							
							
								
									
								
								 | 
						589a56257e | |
| 
							
							
								
									
								
								 | 
						b81a38ee4e | |
| 
							
							
								
									
								
								 | 
						df1e383a88 | |
| 
							
							
								
									
								
								 | 
						dcc063ce3b | |
| 
							
							
								
									
								
								 | 
						1d9b3ba207 | |
| 
							
							
								
									
								
								 | 
						69085b02d7 | |
| 
							
							
								
									
								
								 | 
						d3b170424f | |
| 
							
							
								
									
								
								 | 
						e4b39e8c51 | |
| 
							
							
								
									
								
								 | 
						842e46726d | |
| 
							
							
								
									
								
								 | 
						8c538ea8e7 | |
| 
							
							
								
									
								
								 | 
						5981b25881 | |
| 
							
							
								
									
								
								 | 
						67f9f372e5 | |
| 
							
							
								
									
								
								 | 
						1bab1ba10f | |
| 
							
							
								
									
								
								 | 
						24ec7b69d5 | |
| 
							
							
								
									
								
								 | 
						a2c386bd10 | |
| 
							
							
								
									
								
								 | 
						d6ea59679f | |
| 
							
							
								
									
								
								 | 
						b16e8623de | |
| 
							
							
								
									
								
								 | 
						c5bfd00350 | |
| 
							
							
								
									
								
								 | 
						d119fb68de | |
| 
							
							
								
									
								
								 | 
						45a6e0a446 | |
| 
							
							
								
									
								
								 | 
						aa95b52c0d | |
| 
							
							
								
									
								
								 | 
						95b08d9b53 | |
| 
							
							
								
									
								
								 | 
						34a9a3ea23 | |
| 
							
							
								
									
								
								 | 
						5f3733e05a | |
| 
							
							
								
									
								
								 | 
						1a8752a6b0 | |
| 
							
							
								
									
								
								 | 
						7727ad4f80 | |
| 
							
							
								
									
								
								 | 
						fcee589b6f | |
| 
							
							
								
									
								
								 | 
						c51086ad7c | |
| 
							
							
								
									
								
								 | 
						cbe1361f59 | |
| 
							
							
								
									
								
								 | 
						bb748477e0 | |
| 
							
							
								 | 
						3da1bf7755 | |
| 
							
							
								 | 
						7dc9e0304d | |
| 
							
							
								
									
								
								 | 
						bc10a8d3eb | |
| 
							
							
								
									
								
								 | 
						b356c9bd20 | |
| 
							
							
								 | 
						71c3006e49 | |
| 
							
							
								 | 
						f2e019361d | |
| 
							
							
								 | 
						8398dd1f21 | |
| 
							
							
								 | 
						f5adbeb20f | |
| 
							
							
								 | 
						c4a726d050 | |
| 
							
							
								 | 
						3294422e6a | |
| 
							
							
								 | 
						52fea9937e | |
| 
							
							
								 | 
						3463991cd0 | |
| 
							
							
								 | 
						75c463b162 | |
| 
							
							
								 | 
						5f2e2e764e | |
| 
							
							
								 | 
						8428463a9e | |
| 
							
							
								 | 
						ce8e16e135 | |
| 
							
							
								 | 
						a82ad4ff07 | |
| 
							
							
								 | 
						e0fe79a1e5 | |
| 
							
							
								 | 
						2424d78bf6 | |
| 
							
							
								 | 
						89469a687c | |
| 
							
							
								 | 
						e2f0b401c5 | |
| 
							
							
								 | 
						ca19da1d19 | |
| 
							
							
								 | 
						f0078082c6 | |
| 
							
							
								 | 
						45b459742c | |
| 
							
							
								 | 
						6d8fcd264e | |
| 
							
							
								 | 
						823cba4c3f | |
| 
							
							
								 | 
						8ce33eefa8 | |
| 
							
							
								
									
								
								 | 
						5895f74b9c | |
| 
							
							
								 | 
						2499c0ab64 | |
| 
							
							
								 | 
						e449b28e87 | |
| 
							
							
								 | 
						89134ec7a6 | |
| 
							
							
								 | 
						ac0984d5af | |
| 
							
							
								 | 
						fa4dc9f410 | |
| 
							
							
								 | 
						112813c216 | |
| 
							
							
								
									
								
								 | 
						9676e08e6d | |
| 
							
							
								 | 
						d6b95dd143 | |
| 
							
							
								
									
								
								 | 
						74c5560033 | |
| 
							
							
								
									
								
								 | 
						a0a342f5dd | |
| 
							
							
								 | 
						b9f04f7221 | |
| 
							
							
								 | 
						38fc80f81e | |
| 
							
							
								 | 
						162b838e75 | |
| 
							
							
								 | 
						6200ebf42c | |
| 
							
							
								
									
								
								 | 
						721c9f6fa7 | |
| 
							
							
								 | 
						609d5f6741 | |
| 
							
							
								 | 
						8fa7e4a76f | |
| 
							
							
								
									
								
								 | 
						b4dd2a7eb1 | |
| 
							
							
								 | 
						d4beea04aa | |
| 
							
							
								 | 
						18cf5ea7cc | |
| 
							
							
								
									
								
								 | 
						4e1605c6d3 | |
| 
							
							
								 | 
						060bd28bf8 | |
| 
							
							
								 | 
						eed7af0274 | |
| 
							
							
								 | 
						b35666ee5b | |
| 
							
							
								 | 
						b213900733 | |
| 
							
							
								 | 
						443b09e8e3 | |
| 
							
							
								 | 
						373012be14 | |
| 
							
							
								 | 
						fc2dc8e2a6 | |
| 
							
							
								
									
								
								 | 
						a781bf42cf | |
| 
							
							
								 | 
						6e24540d00 | |
| 
							
							
								 | 
						859c420067 | |
| 
							
							
								 | 
						bb05560668 | |
| 
							
							
								 | 
						e59678d689 | |
| 
							
							
								 | 
						82d0eeb4c6 | |
| 
							
							
								 | 
						e2d151e155 | |
| 
							
							
								 | 
						2262484188 | |
| 
							
							
								 | 
						09f774a5db | |
| 
							
							
								 | 
						d0fa99b49b | |
| 
							
							
								 | 
						0f983cb182 | |
| 
							
							
								 | 
						c5dfdb480d | |
| 
							
							
								 | 
						6cf9874cd5 | |
| 
							
							
								 | 
						236bdcd052 | |
| 
							
							
								 | 
						7ba62d9db1 | |
| 
							
							
								 | 
						4a8effac6d | |
| 
							
							
								 | 
						9dce98fc76 | |
| 
							
							
								 | 
						0456b3735b | |
| 
							
							
								 | 
						868049079d | |
| 
							
							
								 | 
						ea3d35158f | |
| 
							
							
								 | 
						99ecc65b06 | |
| 
							
							
								 | 
						61ec6018ec | |
| 
							
							
								 | 
						440c13018a | |
| 
							
							
								 | 
						a9f2e39572 | |
| 
							
							
								 | 
						7fc01af71e | |
| 
							
							
								 | 
						b89bcd68bb | |
| 
							
							
								 | 
						16b00e9284 | |
| 
							
							
								 | 
						18ab1f4700 | |
| 
							
							
								 | 
						9cac88f333 | |
| 
							
							
								 | 
						8ff8382d54 | |
| 
							
							
								 | 
						17941893cb | |
| 
							
							
								 | 
						2519136654 | |
| 
							
							
								 | 
						14df451c0a | |
| 
							
							
								 | 
						91ac92719a | |
| 
							
							
								 | 
						95d5a5dd0f | |
| 
							
							
								 | 
						86cfcc64cd | |
| 
							
							
								 | 
						a39dc26216 | |
| 
							
							
								 | 
						06084ed899 | |
| 
							
							
								
									
								
								 | 
						437a092920 | |
| 
							
							
								
									
								
								 | 
						6d336228e8 | |
| 
							
							
								
									
								
								 | 
						fd19e1f0cb | |
| 
							
							
								
									
								
								 | 
						6f6ded53bd | |
| 
							
							
								
									
								
								 | 
						66cfa942e7 | |
| 
							
							
								
									
								
								 | 
						af680149bd | |
| 
							
							
								
									
								
								 | 
						b00233cd3b | |
| 
							
							
								
									
								
								 | 
						0479a162c1 | |
| 
							
							
								 | 
						23a8fa192d | |
| 
							
							
								 | 
						c498db7937 | |
| 
							
							
								 | 
						2b9d8ab329 | |
| 
							
							
								 | 
						9f0f2fc8ef | |
| 
							
							
								 | 
						969c5c5d59 | |
| 
							
							
								
									
								
								 | 
						c574326bcc | |
| 
							
							
								
									
								
								 | 
						6f827b799c | |
| 
							
							
								 | 
						d1c96e641f | |
| 
							
							
								 | 
						7b435df0e3 | |
| 
							
							
								 | 
						ef3e9fcb56 | |
| 
							
							
								 | 
						59d99c1cfb | |
| 
							
							
								 | 
						6871c3f22f | |
| 
							
							
								 | 
						8989178ed7 | |
| 
							
							
								 | 
						cf0b5c2d27 | |
| 
							
							
								 | 
						ce4dc9bf53 | |
| 
							
							
								 | 
						51d76c9841 | |
| 
							
							
								 | 
						1629edc32a | |
| 
							
							
								 | 
						9b8e324bf1 | |
| 
							
							
								 | 
						90c329a806 | |
| 
							
							
								 | 
						4466d48bb6 | |
| 
							
							
								 | 
						305a343936 | |
| 
							
							
								 | 
						72ea9d2033 | |
| 
							
							
								 | 
						bad70d7217 | 
| 
						 | 
					@ -0,0 +1,12 @@
 | 
				
			||||||
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
 | 
					# ^ added for shellcheck and file-type detection
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Watch & reload direnv on change
 | 
				
			||||||
 | 
					watch_file devshell.toml
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if [[ $(type -t use_flake) != function ]]; then
 | 
				
			||||||
 | 
					  echo "ERROR: use_flake function missing."
 | 
				
			||||||
 | 
					  echo "Please update direnv to v2.30.0 or later."
 | 
				
			||||||
 | 
					  exit 1
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					use flake
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,15 @@
 | 
				
			||||||
 | 
					> Why do I have a folder named ".expo" in my project?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The ".expo" folder is created when an Expo project is started using "expo start" command.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					> What do the files contain?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- "devices.json": contains information about devices that have recently opened this project. This is used to populate the "Development sessions" list in your development builds.
 | 
				
			||||||
 | 
					- "packager-info.json": contains port numbers and process PIDs that are used to serve the application to the mobile device/simulator.
 | 
				
			||||||
 | 
					- "settings.json": contains the server configuration that is used to serve the application manifest.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					> Should I commit the ".expo" folder?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					No, you should not share the ".expo" folder. It does not contain any information that is relevant for other developers working on the project, it is specific to your machine.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Upon project creation, the ".expo" folder is already added to your ".gitignore" file.
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,8 @@
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  "hostType": "lan",
 | 
				
			||||||
 | 
					  "lanType": "ip",
 | 
				
			||||||
 | 
					  "dev": true,
 | 
				
			||||||
 | 
					  "minify": false,
 | 
				
			||||||
 | 
					  "urlRandomness": null,
 | 
				
			||||||
 | 
					  "https": false
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -1,2 +1,3 @@
 | 
				
			||||||
.log/
 | 
					.log/
 | 
				
			||||||
node_modules
 | 
					node_modules
 | 
				
			||||||
 | 
					.DS_Store
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,4 +1,5 @@
 | 
				
			||||||
import { Controller, Get, Post, Body, Param, Delete } from '@nestjs/common';
 | 
					import { Controller, Get, Post, Put, Body, Param, Delete } from '@nestjs/common';
 | 
				
			||||||
 | 
					import { Console } from 'console';
 | 
				
			||||||
import { AppService } from './app.service';
 | 
					import { AppService } from './app.service';
 | 
				
			||||||
@Controller()
 | 
					@Controller()
 | 
				
			||||||
export class AppController {
 | 
					export class AppController {
 | 
				
			||||||
| 
						 | 
					@ -11,22 +12,12 @@ export class AppController {
 | 
				
			||||||
    @Body('last_name') last_name: string,
 | 
					    @Body('last_name') last_name: string,
 | 
				
			||||||
    @Body('email') email: string,
 | 
					    @Body('email') email: string,
 | 
				
			||||||
    @Body('phone') phone: number,
 | 
					    @Body('phone') phone: number,
 | 
				
			||||||
    @Body('password') password: string,
 | 
					 | 
				
			||||||
    @Body('user_type') user_type: string,
 | 
					    @Body('user_type') user_type: string,
 | 
				
			||||||
    @Body('status') status: string,
 | 
					    @Body('status') status: string,
 | 
				
			||||||
    @Body('date_entry') date_entry: Date,
 | 
					    @Body('date_entry') date_entry: Date,
 | 
				
			||||||
  ) {
 | 
					  ) {
 | 
				
			||||||
    return this.appService.createAdminSystem(
 | 
					    return this.appService.createAdminSystem(dni, name, last_name, email, phone,
 | 
				
			||||||
      dni,
 | 
					      user_type, status, date_entry);
 | 
				
			||||||
      name,
 | 
					 | 
				
			||||||
      last_name,
 | 
					 | 
				
			||||||
      email,
 | 
					 | 
				
			||||||
      phone,
 | 
					 | 
				
			||||||
      password,
 | 
					 | 
				
			||||||
      user_type,
 | 
					 | 
				
			||||||
      status,
 | 
					 | 
				
			||||||
      date_entry,
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  @Post('user/createGuard')
 | 
					  @Post('user/createGuard')
 | 
				
			||||||
| 
						 | 
					@ -37,24 +28,30 @@ export class AppController {
 | 
				
			||||||
    @Body('last_name') last_name: string,
 | 
					    @Body('last_name') last_name: string,
 | 
				
			||||||
    @Body('email') email: string,
 | 
					    @Body('email') email: string,
 | 
				
			||||||
    @Body('phone') phone: number,
 | 
					    @Body('phone') phone: number,
 | 
				
			||||||
    @Body('password') password: string,
 | 
					 | 
				
			||||||
    @Body('user_type') user_type: string,
 | 
					    @Body('user_type') user_type: string,
 | 
				
			||||||
    @Body('status') status: string,
 | 
					    @Body('status') status: string,
 | 
				
			||||||
    @Body('date_entry') date_entry: Date,
 | 
					    @Body('date_entry') date_entry: Date,
 | 
				
			||||||
    @Body('community_id') community_id: string,
 | 
					    @Body('community_id') community_id: string,
 | 
				
			||||||
  ) {
 | 
					  ) {
 | 
				
			||||||
    return this.appService.createGuard(
 | 
					    return this.appService.createGuard(dni, name, last_name, email, phone,
 | 
				
			||||||
      dni,
 | 
					      user_type, status, date_entry, community_id);
 | 
				
			||||||
      name,
 | 
					  }
 | 
				
			||||||
      last_name,
 | 
					
 | 
				
			||||||
      email,
 | 
					  @Post('user/createAdminCommunity')
 | 
				
			||||||
      phone,
 | 
					  createAdminCommunity(
 | 
				
			||||||
      password,
 | 
					    //Nombre, Apellidos, Correo electrónico, Cédula, Teléfono, Contraseña
 | 
				
			||||||
      user_type,
 | 
					    @Body('dni') dni: string,
 | 
				
			||||||
      status,
 | 
					    @Body('name') name: string,
 | 
				
			||||||
      date_entry,
 | 
					    @Body('last_name') last_name: string,
 | 
				
			||||||
      community_id,
 | 
					    @Body('email') email: string,
 | 
				
			||||||
    );
 | 
					    @Body('phone') phone: number,
 | 
				
			||||||
 | 
					    @Body('user_type') user_type: string,
 | 
				
			||||||
 | 
					    @Body('status') status: string,
 | 
				
			||||||
 | 
					    @Body('date_entry') date_entry: Date,
 | 
				
			||||||
 | 
					    @Body('community_id') community_id: string
 | 
				
			||||||
 | 
					  ) {
 | 
				
			||||||
 | 
					    return this.appService.createAdminCommunity(dni, name, last_name, email, phone,
 | 
				
			||||||
 | 
					      user_type, status, date_entry, community_id);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  @Post('user/createUser')
 | 
					  @Post('user/createUser')
 | 
				
			||||||
| 
						 | 
					@ -69,6 +66,7 @@ export class AppController {
 | 
				
			||||||
    @Body('status') status: string,
 | 
					    @Body('status') status: string,
 | 
				
			||||||
    @Body('date_entry') date_entry: Date,
 | 
					    @Body('date_entry') date_entry: Date,
 | 
				
			||||||
    @Body('community_id') community_id: string,
 | 
					    @Body('community_id') community_id: string,
 | 
				
			||||||
 | 
					    @Body('number_house') number_house: string,
 | 
				
			||||||
  ) {
 | 
					  ) {
 | 
				
			||||||
    return this.appService.createUser(
 | 
					    return this.appService.createUser(
 | 
				
			||||||
      dni,
 | 
					      dni,
 | 
				
			||||||
| 
						 | 
					@ -81,6 +79,96 @@ export class AppController {
 | 
				
			||||||
      status,
 | 
					      status,
 | 
				
			||||||
      date_entry,
 | 
					      date_entry,
 | 
				
			||||||
      community_id,
 | 
					      community_id,
 | 
				
			||||||
 | 
					      number_house,
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @Post('user/createTenant')
 | 
				
			||||||
 | 
					  createTenant(
 | 
				
			||||||
 | 
					    @Body('dni') dni: string,
 | 
				
			||||||
 | 
					    @Body('name') name: string,
 | 
				
			||||||
 | 
					    @Body('last_name') last_name: string,
 | 
				
			||||||
 | 
					    @Body('email') email: string,
 | 
				
			||||||
 | 
					    @Body('phone') phone: number,
 | 
				
			||||||
 | 
					    @Body('user_type') user_type: string,
 | 
				
			||||||
 | 
					    @Body('status') status: string,
 | 
				
			||||||
 | 
					    @Body('date_entry') date_entry: Date,
 | 
				
			||||||
 | 
					    @Body('community_id') community_id: string,
 | 
				
			||||||
 | 
					    @Body('number_house') number_house: string,
 | 
				
			||||||
 | 
					  ) {
 | 
				
			||||||
 | 
					    return this.appService.createTenant(
 | 
				
			||||||
 | 
					      dni,
 | 
				
			||||||
 | 
					      name,
 | 
				
			||||||
 | 
					      last_name,
 | 
				
			||||||
 | 
					      email,
 | 
				
			||||||
 | 
					      phone,
 | 
				
			||||||
 | 
					      user_type,
 | 
				
			||||||
 | 
					      status,
 | 
				
			||||||
 | 
					      date_entry,
 | 
				
			||||||
 | 
					      community_id,
 | 
				
			||||||
 | 
					      number_house,
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @Put('user/updateGuard/:id')
 | 
				
			||||||
 | 
					  updateGuard(
 | 
				
			||||||
 | 
					    @Param('id') id: string,
 | 
				
			||||||
 | 
					    @Body('dni') dni: string,
 | 
				
			||||||
 | 
					    @Body('name') name: string,
 | 
				
			||||||
 | 
					    @Body('last_name') last_name: string,
 | 
				
			||||||
 | 
					    @Body('email') email: string,
 | 
				
			||||||
 | 
					    @Body('phone') phone: number,
 | 
				
			||||||
 | 
					    @Body('password') password: string,
 | 
				
			||||||
 | 
					    @Body('user_type') user_type: string,
 | 
				
			||||||
 | 
					    @Body('status') status: string,
 | 
				
			||||||
 | 
					    @Body('date_entry') date_entry: Date,
 | 
				
			||||||
 | 
					    @Body('community_id') community_id: string,
 | 
				
			||||||
 | 
					  ) {
 | 
				
			||||||
 | 
					    return this.appService.updateGuard(
 | 
				
			||||||
 | 
					      id,
 | 
				
			||||||
 | 
					      dni,
 | 
				
			||||||
 | 
					      name,
 | 
				
			||||||
 | 
					      last_name,
 | 
				
			||||||
 | 
					      email,
 | 
				
			||||||
 | 
					      phone,
 | 
				
			||||||
 | 
					      password,
 | 
				
			||||||
 | 
					      user_type,
 | 
				
			||||||
 | 
					      status,
 | 
				
			||||||
 | 
					      date_entry,
 | 
				
			||||||
 | 
					      community_id,
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @Put('user/updateUser/:id')
 | 
				
			||||||
 | 
					  updateUser(
 | 
				
			||||||
 | 
					    @Param('id') id: string,
 | 
				
			||||||
 | 
					    @Body('dni') dni: string,
 | 
				
			||||||
 | 
					    @Body('name') name: string,
 | 
				
			||||||
 | 
					    @Body('last_name') last_name: string,
 | 
				
			||||||
 | 
					    @Body('email') email: string,
 | 
				
			||||||
 | 
					    @Body('phone') phone: number,
 | 
				
			||||||
 | 
					    @Body('password') password: string,
 | 
				
			||||||
 | 
					    @Body('user_type') user_type: string,
 | 
				
			||||||
 | 
					    @Body('status') status: string,
 | 
				
			||||||
 | 
					    @Body('date_entry') date_entry: Date,
 | 
				
			||||||
 | 
					    @Body('community_id') community_id: string,
 | 
				
			||||||
 | 
					    @Body('number_house') number_house: string,
 | 
				
			||||||
 | 
					  ) {
 | 
				
			||||||
 | 
					    return this.appService.updateUser(
 | 
				
			||||||
 | 
					      id,
 | 
				
			||||||
 | 
					      dni,
 | 
				
			||||||
 | 
					      name,
 | 
				
			||||||
 | 
					      last_name,
 | 
				
			||||||
 | 
					      email,
 | 
				
			||||||
 | 
					      phone,
 | 
				
			||||||
 | 
					      password,
 | 
				
			||||||
 | 
					      user_type,
 | 
				
			||||||
 | 
					      status,
 | 
				
			||||||
 | 
					      date_entry,
 | 
				
			||||||
 | 
					      community_id,
 | 
				
			||||||
 | 
					      number_house,
 | 
				
			||||||
    );
 | 
					    );
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -106,21 +194,142 @@ export class AppController {
 | 
				
			||||||
  allUsersAdminComunidad() {
 | 
					  allUsersAdminComunidad() {
 | 
				
			||||||
    return this.appService.allUsersAdminComunidad();
 | 
					    return this.appService.allUsersAdminComunidad();
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  @Get('user/findGuards/:community')
 | 
					  @Get('user/findGuards/:community')
 | 
				
			||||||
  findGuardsCommunity(@Param('community_id') community_id: string) {
 | 
					  findGuardsCommunity(@Param('community_id') community_id: string) {
 | 
				
			||||||
    return this.appService.findGuardsCommunity(community_id);
 | 
					    return this.appService.findGuardsCommunity(community_id);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @Get('user/findTenants/:community_id')
 | 
				
			||||||
 | 
					  allUsersTenants(@Param('community_id') paramCommunity_id: string) {
 | 
				
			||||||
 | 
					    return this.appService.findTenantsCommunity(paramCommunity_id);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  @Get('user/find/:dni')
 | 
					  @Get('user/find/:dni')
 | 
				
			||||||
  findUser(@Param('dni') paramUserDNI: string) {
 | 
					  findUser(@Param('dni') paramUserDNI: string) {
 | 
				
			||||||
    return this.appService.findUser(paramUserDNI);
 | 
					    return this.appService.findUser(paramUserDNI);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @Get('user/findUserById/:id')
 | 
				
			||||||
 | 
					  findUserById(@Param('id') id: string) {
 | 
				
			||||||
 | 
					    return this.appService.findUserById(id);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  @Delete('user/deleteAdminSystem/:id')
 | 
					  @Delete('user/deleteAdminSystem/:id')
 | 
				
			||||||
  deleteAdminSystem(@Param('id') id: string) {
 | 
					  deleteAdminSystem(@Param('id') id: string) {
 | 
				
			||||||
    return this.appService.deleteAdminSystem(id);
 | 
					    return this.appService.deleteAdminSystem(id);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @Delete('user/deleteAdminCommunity/:id')
 | 
				
			||||||
 | 
					  deleteAdminCommunity(@Param('id') id: string) {
 | 
				
			||||||
 | 
					    return this.appService.deleteAdminCommunity(id);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @Put('user/deleteTenant/:id')
 | 
				
			||||||
 | 
					  deleteTenant(
 | 
				
			||||||
 | 
					    @Param('id') id: string,
 | 
				
			||||||
 | 
					    @Body('community_id') community_id: string,
 | 
				
			||||||
 | 
					    @Body('number_house') number_house: string
 | 
				
			||||||
 | 
					  ) {
 | 
				
			||||||
 | 
					    return this.appService.deleteTenant(id, community_id, number_house);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @Put('user/resetUserPassword/:id')
 | 
				
			||||||
 | 
					  resetUserPassword(@Param('id') id: string,
 | 
				
			||||||
 | 
					    @Body('dni') dni: string,
 | 
				
			||||||
 | 
					    @Body('name') name: string,
 | 
				
			||||||
 | 
					    @Body('last_name') last_name: string,
 | 
				
			||||||
 | 
					    @Body('email') email: string,
 | 
				
			||||||
 | 
					    @Body('phone') phone: number,
 | 
				
			||||||
 | 
					    @Body('password') password: string,
 | 
				
			||||||
 | 
					    @Body('user_type') user_type: string,
 | 
				
			||||||
 | 
					    @Body('status') status: string,
 | 
				
			||||||
 | 
					    @Body('date_entry') date_entry: Date,
 | 
				
			||||||
 | 
					    @Body('community_id') community_id: string,
 | 
				
			||||||
 | 
					    @Body('number_house') number_house: string,
 | 
				
			||||||
 | 
					  ) {
 | 
				
			||||||
 | 
					    return this.appService.resetUserPassword(
 | 
				
			||||||
 | 
					      id,
 | 
				
			||||||
 | 
					      dni,
 | 
				
			||||||
 | 
					      name,
 | 
				
			||||||
 | 
					      last_name,
 | 
				
			||||||
 | 
					      email,
 | 
				
			||||||
 | 
					      phone,
 | 
				
			||||||
 | 
					      password,
 | 
				
			||||||
 | 
					      user_type,
 | 
				
			||||||
 | 
					      status,
 | 
				
			||||||
 | 
					      date_entry,
 | 
				
			||||||
 | 
					      community_id,
 | 
				
			||||||
 | 
					      number_house,
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @Post('user/changeStatus')
 | 
				
			||||||
 | 
					  changeStatusUser(
 | 
				
			||||||
 | 
					    @Body('id') pId: string,
 | 
				
			||||||
 | 
					    @Body('status') pStatus: string,
 | 
				
			||||||
 | 
					  ) {
 | 
				
			||||||
 | 
					    return this.appService.changeStatusUser(pId, pStatus);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @Put('user/updateAdminCommunity/:id')
 | 
				
			||||||
 | 
					  updateAdminCommunity(
 | 
				
			||||||
 | 
					    @Param('id') id: string,
 | 
				
			||||||
 | 
					    @Body('dni') dni: string,
 | 
				
			||||||
 | 
					    @Body('name') name: string,
 | 
				
			||||||
 | 
					    @Body('last_name') last_name: string,
 | 
				
			||||||
 | 
					    @Body('email') email: string,
 | 
				
			||||||
 | 
					    @Body('phone') phone: number,
 | 
				
			||||||
 | 
					    @Body('community_id') community_id: string,
 | 
				
			||||||
 | 
					  ) {
 | 
				
			||||||
 | 
					    return this.appService.updateAdminCommunity(
 | 
				
			||||||
 | 
					      id,
 | 
				
			||||||
 | 
					      dni,
 | 
				
			||||||
 | 
					      name,
 | 
				
			||||||
 | 
					      last_name,
 | 
				
			||||||
 | 
					      email,
 | 
				
			||||||
 | 
					      phone,
 | 
				
			||||||
 | 
					      community_id,
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @Post('user/updateAdminSystem')
 | 
				
			||||||
 | 
					  updateAdminSystem(
 | 
				
			||||||
 | 
					    //Nombre, Apellidos, Correo electrónico, Cédula, Teléfono
 | 
				
			||||||
 | 
					    @Body('_id') _id: string,
 | 
				
			||||||
 | 
					    @Body('dni') dni: string,
 | 
				
			||||||
 | 
					    @Body('name') name: string,
 | 
				
			||||||
 | 
					    @Body('last_name') last_name: string,
 | 
				
			||||||
 | 
					    @Body('email') email: string,
 | 
				
			||||||
 | 
					    @Body('phone') phone: number,
 | 
				
			||||||
 | 
					  ) {
 | 
				
			||||||
 | 
					    return this.appService.updateAdminSystem(_id, dni, name, last_name, email, phone);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @Put('user/updateTenant/:id')
 | 
				
			||||||
 | 
					  updateTenant(
 | 
				
			||||||
 | 
					    @Param('id') id: string,
 | 
				
			||||||
 | 
					    @Body('dni') dni: string,
 | 
				
			||||||
 | 
					    @Body('name') name: string,
 | 
				
			||||||
 | 
					    @Body('last_name') last_name: string,
 | 
				
			||||||
 | 
					    @Body('email') email: string,
 | 
				
			||||||
 | 
					    @Body('phone') phone: number,
 | 
				
			||||||
 | 
					    @Body('community_id') community_id: string,
 | 
				
			||||||
 | 
					    @Body('number_house') number_house: string,
 | 
				
			||||||
 | 
					  ) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return this.appService.updateTenant(
 | 
				
			||||||
 | 
					      id,
 | 
				
			||||||
 | 
					      dni,
 | 
				
			||||||
 | 
					      name,
 | 
				
			||||||
 | 
					      last_name,
 | 
				
			||||||
 | 
					      email,
 | 
				
			||||||
 | 
					      phone,
 | 
				
			||||||
 | 
					      community_id,
 | 
				
			||||||
 | 
					      number_house,
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
  // #==== API Communities
 | 
					  // #==== API Communities
 | 
				
			||||||
  @Post('community/createCommunity')
 | 
					  @Post('community/createCommunity')
 | 
				
			||||||
  createCommunity(
 | 
					  createCommunity(
 | 
				
			||||||
| 
						 | 
					@ -166,7 +375,35 @@ export class AppController {
 | 
				
			||||||
  findCommunityAdmin(@Body('community_id') community_id: string) {
 | 
					  findCommunityAdmin(@Body('community_id') community_id: string) {
 | 
				
			||||||
    return this.appService.findCommunityAdmin(community_id);
 | 
					    return this.appService.findCommunityAdmin(community_id);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					  @Post('community/changeStatus')
 | 
				
			||||||
 | 
					  changeStatusCommunity(
 | 
				
			||||||
 | 
					    @Body('id') pId: string,
 | 
				
			||||||
 | 
					    @Body('status') pStatus: string,
 | 
				
			||||||
 | 
					  ) {
 | 
				
			||||||
 | 
					    return this.appService.changeStatusCommunity(pId, pStatus);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @Get('community/findHousesCommunity/:id')
 | 
				
			||||||
 | 
					  findHousesCommunity(
 | 
				
			||||||
 | 
					    @Param('id') community_id: string,
 | 
				
			||||||
 | 
					  ) {
 | 
				
			||||||
 | 
					    return this.appService.findHousesCommunity(community_id);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @Post('community/saveTenant')
 | 
				
			||||||
 | 
					  saveTenant(
 | 
				
			||||||
 | 
					    @Body('community_id') community_id: string,
 | 
				
			||||||
 | 
					    @Body('number_house') number_house: string,
 | 
				
			||||||
 | 
					    @Body('_id') tenant_id: string,
 | 
				
			||||||
 | 
					  ) {
 | 
				
			||||||
 | 
					    console.log(community_id + ' ' + number_house + ' ' + tenant_id)
 | 
				
			||||||
 | 
					    return this.appService.saveTenant(community_id, number_house, tenant_id);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @Delete('community/deleteCommunity/:id')
 | 
				
			||||||
 | 
					  deleteCommunity(@Param('id') paramCommunityId: string) {
 | 
				
			||||||
 | 
					    return this.appService.deleteCommunity(paramCommunityId);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
  // #==== API Common Areas
 | 
					  // #==== API Common Areas
 | 
				
			||||||
  @Post('commonArea/createCommonArea')
 | 
					  @Post('commonArea/createCommonArea')
 | 
				
			||||||
  createCommonArea(
 | 
					  createCommonArea(
 | 
				
			||||||
| 
						 | 
					@ -195,6 +432,42 @@ export class AppController {
 | 
				
			||||||
    return this.appService.findCommonArea(paramCommonAreaId);
 | 
					    return this.appService.findCommonArea(paramCommonAreaId);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @Get('commonArea/findByCommunity/:community_id')
 | 
				
			||||||
 | 
					  findByCommunity(@Param('community_id') paramCommunityId: string) {
 | 
				
			||||||
 | 
					    return this.appService.findByCommunity(paramCommunityId);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @Delete('commonArea/deleteCommonArea/:id')
 | 
				
			||||||
 | 
					  deleteCommonArea(@Param('id') id: string) {
 | 
				
			||||||
 | 
					    return this.appService.deleteCommonArea(id);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @Post('commonArea/changeStatus')
 | 
				
			||||||
 | 
					  changeStatusCommonArea(
 | 
				
			||||||
 | 
					    @Body('id') pId: string,
 | 
				
			||||||
 | 
					    @Body('status') pStatus: string,
 | 
				
			||||||
 | 
					  ) {
 | 
				
			||||||
 | 
					    return this.appService.changeStatusCommonArea(pId, pStatus);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @Post('commonArea/updateCommonArea')
 | 
				
			||||||
 | 
					  updateCommonArea(
 | 
				
			||||||
 | 
					    @Body('_id') id: string,
 | 
				
			||||||
 | 
					    @Body('name') name: string,
 | 
				
			||||||
 | 
					    @Body('hourMin') hourMin: string,
 | 
				
			||||||
 | 
					    @Body('hourMax') hourMax: string,
 | 
				
			||||||
 | 
					    @Body('bookable') bookable: number,
 | 
				
			||||||
 | 
					    @Body('community_id') community_id: string,
 | 
				
			||||||
 | 
					  ) {
 | 
				
			||||||
 | 
					    return this.appService.updateCommonArea(
 | 
				
			||||||
 | 
					      id, 
 | 
				
			||||||
 | 
					      name,
 | 
				
			||||||
 | 
					      hourMin,
 | 
				
			||||||
 | 
					      hourMax,
 | 
				
			||||||
 | 
					      bookable,
 | 
				
			||||||
 | 
					      community_id,);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
  // #==== API GUEST
 | 
					  // #==== API GUEST
 | 
				
			||||||
  //#API userService - create user
 | 
					  //#API userService - create user
 | 
				
			||||||
  @Post('guest/createGuest')
 | 
					  @Post('guest/createGuest')
 | 
				
			||||||
| 
						 | 
					@ -205,6 +478,8 @@ export class AppController {
 | 
				
			||||||
    @Body('number_plate') number_plate: string,
 | 
					    @Body('number_plate') number_plate: string,
 | 
				
			||||||
    @Body('phone') phone: number,
 | 
					    @Body('phone') phone: number,
 | 
				
			||||||
    @Body('status') status: string,
 | 
					    @Body('status') status: string,
 | 
				
			||||||
 | 
					    @Body('tenant_id') tenant_id: string,
 | 
				
			||||||
 | 
					    @Body('community_id') community_id: string,
 | 
				
			||||||
    @Body('date_entry') date_entry: Date,
 | 
					    @Body('date_entry') date_entry: Date,
 | 
				
			||||||
  ) {
 | 
					  ) {
 | 
				
			||||||
    return this.appService.createGuest(
 | 
					    return this.appService.createGuest(
 | 
				
			||||||
| 
						 | 
					@ -214,6 +489,8 @@ export class AppController {
 | 
				
			||||||
      number_plate,
 | 
					      number_plate,
 | 
				
			||||||
      phone,
 | 
					      phone,
 | 
				
			||||||
      status,
 | 
					      status,
 | 
				
			||||||
 | 
					      tenant_id,
 | 
				
			||||||
 | 
					      community_id,
 | 
				
			||||||
      date_entry,
 | 
					      date_entry,
 | 
				
			||||||
    );
 | 
					    );
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
| 
						 | 
					@ -228,57 +505,36 @@ export class AppController {
 | 
				
			||||||
    return this.appService.findGuest(paramGuestDNI);
 | 
					    return this.appService.findGuest(paramGuestDNI);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // #==== API Payment
 | 
					  @Get('guest/findGuestUser/:id')
 | 
				
			||||||
 | 
					  findGuestUser(@Param('id') paramGuestId: string) {
 | 
				
			||||||
  @Post('payment/createPayment')
 | 
					    return this.appService.findGuestUser(paramGuestId);
 | 
				
			||||||
  createPayment(
 | 
					 | 
				
			||||||
    @Body('date_payment') date_payment: Date,
 | 
					 | 
				
			||||||
    @Body('mount') mount: number,
 | 
					 | 
				
			||||||
    @Body('description') description: string,
 | 
					 | 
				
			||||||
    @Body('period') period: string,
 | 
					 | 
				
			||||||
    @Body('status') status: string,
 | 
					 | 
				
			||||||
    @Body('user_id') user_id: string,
 | 
					 | 
				
			||||||
    @Body('communty_id') communty_id: string,
 | 
					 | 
				
			||||||
  ) {
 | 
					 | 
				
			||||||
    return this.appService.createPayment(
 | 
					 | 
				
			||||||
      date_payment,
 | 
					 | 
				
			||||||
      mount,
 | 
					 | 
				
			||||||
      description,
 | 
					 | 
				
			||||||
      period,
 | 
					 | 
				
			||||||
      status,
 | 
					 | 
				
			||||||
      user_id,
 | 
					 | 
				
			||||||
      communty_id,
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  @Get('payment/allPayments')
 | 
					 | 
				
			||||||
  allPayments() {
 | 
					 | 
				
			||||||
    return this.appService.allPayments();
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  @Get('payment/find/:dni')
 | 
					
 | 
				
			||||||
  findPayment(@Param('dni') paramPaymentDNI: string) {
 | 
					 | 
				
			||||||
    return this.appService.findPayment(paramPaymentDNI);
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // #==== API Reservation
 | 
					  // #==== API Reservation
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  @Post('reservation/createReservation')
 | 
					  @Post('reservation/createReservation')
 | 
				
			||||||
  createReservation(
 | 
					  createReservation(
 | 
				
			||||||
    @Body('start_time') start_time: string,
 | 
					    @Body('date') date: string,
 | 
				
			||||||
    @Body('finish_time') finish_time: string,
 | 
					    @Body('time') time: string,
 | 
				
			||||||
    @Body('status') status: string,
 | 
					    @Body('status') status: string,
 | 
				
			||||||
    @Body('date_entry') date_entry: Date,
 | 
					    @Body('date_entry') date_entry: Date,
 | 
				
			||||||
    @Body('user_id') user_id: string,
 | 
					    @Body('user_id') user_id: string,
 | 
				
			||||||
    @Body('common_area_id') common_area_id: string,
 | 
					    @Body('common_area_id') common_area_id: string,
 | 
				
			||||||
 | 
					    @Body('common_area_name') common_area_name: string,
 | 
				
			||||||
 | 
					    @Body('community_id') community_id: string,
 | 
				
			||||||
  ) {
 | 
					  ) {
 | 
				
			||||||
    return this.appService.createReservation(
 | 
					    return this.appService.createReservation(
 | 
				
			||||||
      start_time,
 | 
					      date,
 | 
				
			||||||
      finish_time,
 | 
					      time,
 | 
				
			||||||
      status,
 | 
					      status,
 | 
				
			||||||
      date_entry,
 | 
					      date_entry,
 | 
				
			||||||
      user_id,
 | 
					      user_id,
 | 
				
			||||||
      common_area_id,
 | 
					      common_area_id,
 | 
				
			||||||
 | 
					      common_area_name,
 | 
				
			||||||
 | 
					      community_id,
 | 
				
			||||||
    );
 | 
					    );
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -292,6 +548,18 @@ export class AppController {
 | 
				
			||||||
    return this.appService.findReservation(paramReservation);
 | 
					    return this.appService.findReservation(paramReservation);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @Get('reservation/findReservations/:id')
 | 
				
			||||||
 | 
					  findReservations(@Param('id') community_id: string) {
 | 
				
			||||||
 | 
					    return this.appService.findReservations(community_id);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @Delete('reservation/deleteReservation/:id')
 | 
				
			||||||
 | 
					  deleteReservation(@Param('id') id: string) {
 | 
				
			||||||
 | 
					    return this.appService.deleteReservation(id);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // #==== API Post
 | 
					  // #==== API Post
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  @Post('post/createPost')
 | 
					  @Post('post/createPost')
 | 
				
			||||||
| 
						 | 
					@ -304,6 +572,16 @@ export class AppController {
 | 
				
			||||||
    return this.appService.createPost(post, date_entry, user_id, community_id);
 | 
					    return this.appService.createPost(post, date_entry, user_id, community_id);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @Put('post/updatePost/:id')
 | 
				
			||||||
 | 
					  updatePost(
 | 
				
			||||||
 | 
					    @Param('id') id: string,
 | 
				
			||||||
 | 
					    @Body('post') post: string,
 | 
				
			||||||
 | 
					    @Body('user_id') user_id: string,
 | 
				
			||||||
 | 
					    @Body('community_id') community_id: string,
 | 
				
			||||||
 | 
					  ) {
 | 
				
			||||||
 | 
					    return this.appService.updatePost(id, post, user_id, community_id);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  @Get('post/allPosts')
 | 
					  @Get('post/allPosts')
 | 
				
			||||||
  allPosts() {
 | 
					  allPosts() {
 | 
				
			||||||
    return this.appService.allPosts();
 | 
					    return this.appService.allPosts();
 | 
				
			||||||
| 
						 | 
					@ -314,6 +592,11 @@ export class AppController {
 | 
				
			||||||
    return this.appService.findPost(paramPost);
 | 
					    return this.appService.findPost(paramPost);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @Delete('post/deletePost/:id')
 | 
				
			||||||
 | 
					  deletePost(@Param('id') id: string) {
 | 
				
			||||||
 | 
					    return this.appService.deletePost(id);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // #==== API Comment
 | 
					  // #==== API Comment
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  @Post('post/createComment')
 | 
					  @Post('post/createComment')
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,7 @@
 | 
				
			||||||
import { Injectable, Inject } from '@nestjs/common';
 | 
					import { Injectable, Inject } from '@nestjs/common';
 | 
				
			||||||
import { ClientProxy } from '@nestjs/microservices';
 | 
					import { ClientProxy } from '@nestjs/microservices';
 | 
				
			||||||
import { map } from 'rxjs/operators';
 | 
					import { map } from 'rxjs/operators';
 | 
				
			||||||
 | 
					import { lastValueFrom } from 'rxjs';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@Injectable()
 | 
					@Injectable()
 | 
				
			||||||
export class AppService {
 | 
					export class AppService {
 | 
				
			||||||
| 
						 | 
					@ -34,6 +35,7 @@ export class AppService {
 | 
				
			||||||
    status: string,
 | 
					    status: string,
 | 
				
			||||||
    date_entry: Date,
 | 
					    date_entry: Date,
 | 
				
			||||||
    community_id: string,
 | 
					    community_id: string,
 | 
				
			||||||
 | 
					    number_house: string,
 | 
				
			||||||
  ) {
 | 
					  ) {
 | 
				
			||||||
    const pattern = { cmd: 'createUser' };
 | 
					    const pattern = { cmd: 'createUser' };
 | 
				
			||||||
    const payload = {
 | 
					    const payload = {
 | 
				
			||||||
| 
						 | 
					@ -47,71 +49,204 @@ export class AppService {
 | 
				
			||||||
      status: status,
 | 
					      status: status,
 | 
				
			||||||
      date_entry: date_entry,
 | 
					      date_entry: date_entry,
 | 
				
			||||||
      community_id: community_id,
 | 
					      community_id: community_id,
 | 
				
			||||||
 | 
					      number_house: number_house,
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					    return this.clientUserApp
 | 
				
			||||||
 | 
					      .send<string>(pattern, payload)
 | 
				
			||||||
 | 
					      .pipe(map((message: string) => ({ message })));
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  createTenant(
 | 
				
			||||||
 | 
					    dni: string,
 | 
				
			||||||
 | 
					    name: string,
 | 
				
			||||||
 | 
					    last_name: string,
 | 
				
			||||||
 | 
					    email: string,
 | 
				
			||||||
 | 
					    phone: number,
 | 
				
			||||||
 | 
					    user_type: string,
 | 
				
			||||||
 | 
					    status: string,
 | 
				
			||||||
 | 
					    date_entry: Date,
 | 
				
			||||||
 | 
					    community_id: string,
 | 
				
			||||||
 | 
					    number_house: string,
 | 
				
			||||||
 | 
					  ) {
 | 
				
			||||||
 | 
					    const pattern = { cmd: 'createTenant' };
 | 
				
			||||||
 | 
					    const payload = {
 | 
				
			||||||
 | 
					      dni: dni,
 | 
				
			||||||
 | 
					      name: name,
 | 
				
			||||||
 | 
					      last_name: last_name,
 | 
				
			||||||
 | 
					      email: email,
 | 
				
			||||||
 | 
					      phone: phone,
 | 
				
			||||||
 | 
					      password: this.generatePassword(),
 | 
				
			||||||
 | 
					      user_type: user_type,
 | 
				
			||||||
 | 
					      status: status,
 | 
				
			||||||
 | 
					      date_entry: date_entry,
 | 
				
			||||||
 | 
					      community_id: community_id,
 | 
				
			||||||
 | 
					      number_house: number_house,
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					    return this.clientUserApp
 | 
				
			||||||
 | 
					      .send<string>(pattern, payload)
 | 
				
			||||||
 | 
					      .pipe(map((message: string) => ({ message })));
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  updateUser(
 | 
				
			||||||
 | 
					    _id: string,
 | 
				
			||||||
 | 
					    dni: string,
 | 
				
			||||||
 | 
					    name: string,
 | 
				
			||||||
 | 
					    last_name: string,
 | 
				
			||||||
 | 
					    email: string,
 | 
				
			||||||
 | 
					    phone: number,
 | 
				
			||||||
 | 
					    password: string,
 | 
				
			||||||
 | 
					    user_type: string,
 | 
				
			||||||
 | 
					    status: string,
 | 
				
			||||||
 | 
					    date_entry: Date,
 | 
				
			||||||
 | 
					    community_id: string,
 | 
				
			||||||
 | 
					    number_house: string,
 | 
				
			||||||
 | 
					  ) {
 | 
				
			||||||
 | 
					    const pattern = { cmd: 'updateUser' };
 | 
				
			||||||
 | 
					    const payload = {
 | 
				
			||||||
 | 
					      id: _id,
 | 
				
			||||||
 | 
					      dni: dni,
 | 
				
			||||||
 | 
					      name: name,
 | 
				
			||||||
 | 
					      last_name: last_name,
 | 
				
			||||||
 | 
					      email: email,
 | 
				
			||||||
 | 
					      phone: phone,
 | 
				
			||||||
 | 
					      password: password,
 | 
				
			||||||
 | 
					      user_type: user_type,
 | 
				
			||||||
 | 
					      status: status,
 | 
				
			||||||
 | 
					      date_entry: date_entry,
 | 
				
			||||||
 | 
					      community_id: community_id,
 | 
				
			||||||
 | 
					      number_house: number_house,
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					    return this.clientUserApp
 | 
				
			||||||
 | 
					      .send<string>(pattern, payload)
 | 
				
			||||||
 | 
					      .pipe(map((message: string) => ({ message })));
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  updateGuard(
 | 
				
			||||||
 | 
					    _id: string,
 | 
				
			||||||
 | 
					    dni: string,
 | 
				
			||||||
 | 
					    name: string,
 | 
				
			||||||
 | 
					    last_name: string,
 | 
				
			||||||
 | 
					    email: string,
 | 
				
			||||||
 | 
					    phone: number,
 | 
				
			||||||
 | 
					    password: string,
 | 
				
			||||||
 | 
					    user_type: string,
 | 
				
			||||||
 | 
					    status: string,
 | 
				
			||||||
 | 
					    date_entry: Date,
 | 
				
			||||||
 | 
					    community_id: string,
 | 
				
			||||||
 | 
					  ) {
 | 
				
			||||||
 | 
					    const pattern = { cmd: 'updateGuard' };
 | 
				
			||||||
 | 
					    const payload = {
 | 
				
			||||||
 | 
					      id: _id,
 | 
				
			||||||
 | 
					      dni: dni,
 | 
				
			||||||
 | 
					      name: name,
 | 
				
			||||||
 | 
					      last_name: last_name,
 | 
				
			||||||
 | 
					      email: email,
 | 
				
			||||||
 | 
					      phone: phone,
 | 
				
			||||||
 | 
					      password: password,
 | 
				
			||||||
 | 
					      user_type: user_type,
 | 
				
			||||||
 | 
					      status: status,
 | 
				
			||||||
 | 
					      date_entry: date_entry,
 | 
				
			||||||
 | 
					      community_id: community_id,
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
    return this.clientUserApp
 | 
					    return this.clientUserApp
 | 
				
			||||||
      .send<string>(pattern, payload)
 | 
					      .send<string>(pattern, payload)
 | 
				
			||||||
      .pipe(map((message: string) => ({ message })));
 | 
					      .pipe(map((message: string) => ({ message })));
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					  updateAdminCommunity(
 | 
				
			||||||
  //POST parameter from API
 | 
					    id: string,
 | 
				
			||||||
  createAdminSystem(
 | 
					 | 
				
			||||||
    dni: string,
 | 
					    dni: string,
 | 
				
			||||||
    name: string,
 | 
					    name: string,
 | 
				
			||||||
    last_name: string,
 | 
					    last_name: string,
 | 
				
			||||||
    email: string,
 | 
					    email: string,
 | 
				
			||||||
    phone: number,
 | 
					    phone: number,
 | 
				
			||||||
    password: string,
 | 
					    community_id: string,
 | 
				
			||||||
    user_type: string,
 | 
					 | 
				
			||||||
    status: string,
 | 
					 | 
				
			||||||
    date_entry: Date,
 | 
					 | 
				
			||||||
  ) {
 | 
					  ) {
 | 
				
			||||||
    const pattern = { cmd: 'createAdminSystem' };
 | 
					    const pattern = { cmd: 'updateAdminCommunity' };
 | 
				
			||||||
    const payload = {
 | 
					    const payload = {
 | 
				
			||||||
 | 
					      _id: id,
 | 
				
			||||||
      dni: dni,
 | 
					      dni: dni,
 | 
				
			||||||
      name: name,
 | 
					      name: name,
 | 
				
			||||||
      last_name: last_name,
 | 
					      last_name: last_name,
 | 
				
			||||||
      email: email,
 | 
					      email: email,
 | 
				
			||||||
      phone: phone,
 | 
					      phone: phone,
 | 
				
			||||||
      password: password,
 | 
					      community_id: community_id,
 | 
				
			||||||
      user_type: user_type,
 | 
					 | 
				
			||||||
      status: status,
 | 
					 | 
				
			||||||
      date_entry: date_entry,
 | 
					 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
    return this.clientUserApp
 | 
					    return this.clientUserApp
 | 
				
			||||||
      .send<string>(pattern, payload)
 | 
					      .send<string>(pattern, payload)
 | 
				
			||||||
      .pipe(map((message: string) => ({ message })));
 | 
					      .pipe(map((message: string) => ({ message })));
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  createGuard(
 | 
					
 | 
				
			||||||
 | 
					  async updateTenant(
 | 
				
			||||||
 | 
					    _id: string,
 | 
				
			||||||
    dni: string,
 | 
					    dni: string,
 | 
				
			||||||
    name: string,
 | 
					    name: string,
 | 
				
			||||||
    last_name: string,
 | 
					    last_name: string,
 | 
				
			||||||
    email: string,
 | 
					    email: string,
 | 
				
			||||||
    phone: number,
 | 
					    phone: number,
 | 
				
			||||||
    password: string,
 | 
					 | 
				
			||||||
    user_type: string,
 | 
					 | 
				
			||||||
    status: string,
 | 
					 | 
				
			||||||
    date_entry: Date,
 | 
					 | 
				
			||||||
    community_id: string,
 | 
					    community_id: string,
 | 
				
			||||||
 | 
					    number_house: string,
 | 
				
			||||||
  ) {
 | 
					  ) {
 | 
				
			||||||
    const pattern = { cmd: 'createGuard' };
 | 
					    await this.saveTenant(community_id, number_house, _id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    const pattern = { cmd: 'updateTenant' };
 | 
				
			||||||
    const payload = {
 | 
					    const payload = {
 | 
				
			||||||
 | 
					      id: _id,
 | 
				
			||||||
      dni: dni,
 | 
					      dni: dni,
 | 
				
			||||||
      name: name,
 | 
					      name: name,
 | 
				
			||||||
      last_name: last_name,
 | 
					      last_name: last_name,
 | 
				
			||||||
      email: email,
 | 
					      email: email,
 | 
				
			||||||
      phone: phone,
 | 
					      phone: phone,
 | 
				
			||||||
      password: password,
 | 
					      community_id: community_id,
 | 
				
			||||||
      user_type: user_type,
 | 
					      number_house: number_house,
 | 
				
			||||||
      status: status,
 | 
					 | 
				
			||||||
      date_entry: date_entry,
 | 
					 | 
				
			||||||
      community_id,
 | 
					 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
    return this.clientUserApp
 | 
					    return this.clientUserApp
 | 
				
			||||||
      .send<string>(pattern, payload)
 | 
					      .send<string>(pattern, payload)
 | 
				
			||||||
      .pipe(map((message: string) => ({ message })));
 | 
					      .pipe(map((message: string) => ({ message })));
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  //POST parameter from API
 | 
				
			||||||
 | 
					  createAdminSystem(dni: string, name: string, last_name: string, email: string, phone: number
 | 
				
			||||||
 | 
					    , user_type: string, status: string, date_entry: Date) {
 | 
				
			||||||
 | 
					    const pattern = { cmd: 'createAdminSystem' };
 | 
				
			||||||
 | 
					    const payload = {
 | 
				
			||||||
 | 
					      dni: dni, name: name, last_name: last_name, email: email, phone: phone,
 | 
				
			||||||
 | 
					      password: this.generatePassword(), user_type: user_type, status: status, date_entry: date_entry
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					    return this.clientUserApp
 | 
				
			||||||
 | 
					      .send<string>(pattern, payload)
 | 
				
			||||||
 | 
					      .pipe(map((message: string) => ({ message })));
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  createGuard(dni: string, name: string, last_name: string, email: string, phone: number
 | 
				
			||||||
 | 
					    , user_type: string, status: string, date_entry: Date, community_id: string) {
 | 
				
			||||||
 | 
					    const pattern = { cmd: 'createGuard' };
 | 
				
			||||||
 | 
					    const payload = {
 | 
				
			||||||
 | 
					      dni: dni, name: name, last_name: last_name, email: email, phone: phone,
 | 
				
			||||||
 | 
					      password: this.generatePassword(), user_type: user_type, status: status, date_entry: date_entry, community_id
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					    return this.clientUserApp
 | 
				
			||||||
 | 
					      .send<string>(pattern, payload)
 | 
				
			||||||
 | 
					      .pipe(map((message: string) => ({ message })));
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  createAdminCommunity(dni: string, name: string, last_name: string, email: string, phone: number
 | 
				
			||||||
 | 
					    , user_type: string, status: string, date_entry: Date, community_id: string) {
 | 
				
			||||||
 | 
					    const pattern = { cmd: 'createAdminCommunity' };
 | 
				
			||||||
 | 
					    const payload = {
 | 
				
			||||||
 | 
					      dni: dni, name: name, last_name: last_name, email: email, phone: phone,
 | 
				
			||||||
 | 
					      password: this.generatePassword(), user_type: user_type, status: status, date_entry: date_entry, community_id
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					    return this.clientUserApp
 | 
				
			||||||
 | 
					      .send<string>(pattern, payload)
 | 
				
			||||||
 | 
					      .pipe(
 | 
				
			||||||
 | 
					        map((message: string) => ({ message })),
 | 
				
			||||||
 | 
					      );
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  allUsers() {
 | 
					  allUsers() {
 | 
				
			||||||
    const pattern = { cmd: 'findAllUsers' };
 | 
					    const pattern = { cmd: 'findAllUsers' };
 | 
				
			||||||
    const payload = {};
 | 
					    const payload = {};
 | 
				
			||||||
| 
						 | 
					@ -120,6 +255,34 @@ export class AppService {
 | 
				
			||||||
      .pipe(map((message: string) => ({ message })));
 | 
					      .pipe(map((message: string) => ({ message })));
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  resetUserPassword(
 | 
				
			||||||
 | 
					    id: string,
 | 
				
			||||||
 | 
					    dni: string,
 | 
				
			||||||
 | 
					    name: string,
 | 
				
			||||||
 | 
					    last_name: string,
 | 
				
			||||||
 | 
					    email: string,
 | 
				
			||||||
 | 
					    phone: number,
 | 
				
			||||||
 | 
					    _password: string,
 | 
				
			||||||
 | 
					    user_type: string,
 | 
				
			||||||
 | 
					    status: string,
 | 
				
			||||||
 | 
					    date_entry: Date,
 | 
				
			||||||
 | 
					    community_id: string,
 | 
				
			||||||
 | 
					    number_house: string,
 | 
				
			||||||
 | 
					  ) {
 | 
				
			||||||
 | 
					    const pattern = { cmd: 'resetUserPassword' };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    const payload = {
 | 
				
			||||||
 | 
					      id: id, dni: dni, name: name, last_name: last_name, email: email, phone: phone,
 | 
				
			||||||
 | 
					      password: this.generatePassword(), user_type: user_type, status: status, date_entry: date_entry, community_id: community_id, number_house: number_house
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					    console.log(payload);
 | 
				
			||||||
 | 
					    return this.clientUserApp
 | 
				
			||||||
 | 
					      .send<string>(pattern, payload)
 | 
				
			||||||
 | 
					      .pipe(
 | 
				
			||||||
 | 
					        map((message: string) => ({ message })),
 | 
				
			||||||
 | 
					      );
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  allUsersAdminSistema() {
 | 
					  allUsersAdminSistema() {
 | 
				
			||||||
    const pattern = { cmd: 'findAdminSistema' };
 | 
					    const pattern = { cmd: 'findAdminSistema' };
 | 
				
			||||||
    const payload = {};
 | 
					    const payload = {};
 | 
				
			||||||
| 
						 | 
					@ -136,6 +299,17 @@ export class AppService {
 | 
				
			||||||
      .pipe(map((message: string) => ({ message })));
 | 
					      .pipe(map((message: string) => ({ message })));
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  allUsersTenants() {
 | 
				
			||||||
 | 
					    const pattern = { cmd: 'findTenants' };
 | 
				
			||||||
 | 
					    const payload = {};
 | 
				
			||||||
 | 
					    return this.clientUserApp
 | 
				
			||||||
 | 
					      .send<string>(pattern, payload)
 | 
				
			||||||
 | 
					      .pipe(
 | 
				
			||||||
 | 
					        map((message: string) => ({ message })),
 | 
				
			||||||
 | 
					      );
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  //GET parameter from API
 | 
					  //GET parameter from API
 | 
				
			||||||
  findUser(paramUserDNI: string) {
 | 
					  findUser(paramUserDNI: string) {
 | 
				
			||||||
    const pattern = { cmd: 'findUserDNI' };
 | 
					    const pattern = { cmd: 'findUserDNI' };
 | 
				
			||||||
| 
						 | 
					@ -153,6 +327,14 @@ export class AppService {
 | 
				
			||||||
      .pipe(map((message: string) => ({ message })));
 | 
					      .pipe(map((message: string) => ({ message })));
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  findTenantsCommunity(community_id: string) {
 | 
				
			||||||
 | 
					    const pattern = { cmd: 'findTenantsCommunity' };
 | 
				
			||||||
 | 
					    const payload = { community_id: community_id };
 | 
				
			||||||
 | 
					    return this.clientUserApp
 | 
				
			||||||
 | 
					      .send<string>(pattern, payload)
 | 
				
			||||||
 | 
					      .pipe(map((message: string) => ({ message })));
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  deleteAdminSystem(id: string) {
 | 
					  deleteAdminSystem(id: string) {
 | 
				
			||||||
    const pattern = { cmd: 'deleteAdminSystem' };
 | 
					    const pattern = { cmd: 'deleteAdminSystem' };
 | 
				
			||||||
    const payload = { id: id };
 | 
					    const payload = { id: id };
 | 
				
			||||||
| 
						 | 
					@ -161,6 +343,22 @@ export class AppService {
 | 
				
			||||||
      .pipe(map((message: string) => ({ message })));
 | 
					      .pipe(map((message: string) => ({ message })));
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  deleteAdminCommunity(id: string) {
 | 
				
			||||||
 | 
					    const pattern = { cmd: 'deleteAdminCommunity' };
 | 
				
			||||||
 | 
					    const payload = { id: id };
 | 
				
			||||||
 | 
					    return this.clientUserApp
 | 
				
			||||||
 | 
					      .send<string>(pattern, payload)
 | 
				
			||||||
 | 
					      .pipe(map((message: string) => ({ message })));
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  deleteTenant(id: string, community_id: string, number_house: string) {
 | 
				
			||||||
 | 
					    const pattern = { cmd: 'deleteTenant' };
 | 
				
			||||||
 | 
					    const payload = { _id: id, community_id: community_id, number_house: number_house };
 | 
				
			||||||
 | 
					    return this.clientUserApp
 | 
				
			||||||
 | 
					      .send<string>(pattern, payload)
 | 
				
			||||||
 | 
					      .pipe(map((message: string) => ({ message })));
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  inicioSesion(pEmail: string, pPassword: string) {
 | 
					  inicioSesion(pEmail: string, pPassword: string) {
 | 
				
			||||||
    const pattern = { cmd: 'loginUser' };
 | 
					    const pattern = { cmd: 'loginUser' };
 | 
				
			||||||
    const payload = { email: pEmail, password: pPassword };
 | 
					    const payload = { email: pEmail, password: pPassword };
 | 
				
			||||||
| 
						 | 
					@ -169,6 +367,19 @@ export class AppService {
 | 
				
			||||||
      .pipe(map((message: string) => ({ message })));
 | 
					      .pipe(map((message: string) => ({ message })));
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  updateAdminSystem(_id: string, dni: string, name: string,
 | 
				
			||||||
 | 
					    last_name: string, email: string, phone: number
 | 
				
			||||||
 | 
					  ) {
 | 
				
			||||||
 | 
					    const pattern = { cmd: 'updateAdminSystem' };
 | 
				
			||||||
 | 
					    const payload = {
 | 
				
			||||||
 | 
					      _id: _id, dni: dni, name: name, last_name: last_name,
 | 
				
			||||||
 | 
					      email: email, phone: phone
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					    return this.clientUserApp
 | 
				
			||||||
 | 
					      .send<string>(pattern, payload)
 | 
				
			||||||
 | 
					      .pipe(map((message: string) => ({ message })));
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  //GET parameter from API
 | 
					  //GET parameter from API
 | 
				
			||||||
  findCommunityAdmin(community_id: string) {
 | 
					  findCommunityAdmin(community_id: string) {
 | 
				
			||||||
    const pattern = { cmd: 'findCommunityAdmin' };
 | 
					    const pattern = { cmd: 'findCommunityAdmin' };
 | 
				
			||||||
| 
						 | 
					@ -178,20 +389,37 @@ export class AppService {
 | 
				
			||||||
      .pipe(map((message: string) => ({ message })));
 | 
					      .pipe(map((message: string) => ({ message })));
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  //GET parameter from API
 | 
				
			||||||
 | 
					  findUserById(id: string) {
 | 
				
			||||||
 | 
					    const pattern = { cmd: 'findById' };
 | 
				
			||||||
 | 
					    const payload = { id: id };
 | 
				
			||||||
 | 
					    return this.clientUserApp
 | 
				
			||||||
 | 
					      .send<string>(pattern, payload)
 | 
				
			||||||
 | 
					      .pipe(map((message: string) => ({ message })));
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  changeStatusUser(pId: string, pStatus: string) {
 | 
				
			||||||
 | 
					    const pattern = { cmd: 'changeStatus' };
 | 
				
			||||||
 | 
					    const payload = { id: pId, status: pStatus };
 | 
				
			||||||
 | 
					    return this.clientUserApp
 | 
				
			||||||
 | 
					      .send<string>(pattern, payload)
 | 
				
			||||||
 | 
					      .pipe(map((message: string) => ({ message })));
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // ====================== COMMUNITIES ===============================
 | 
					  // ====================== COMMUNITIES ===============================
 | 
				
			||||||
 | 
					  changeStatusCommunity(pId: string, pStatus: string) {
 | 
				
			||||||
 | 
					    const pattern = { cmd: 'changeStatus' };
 | 
				
			||||||
 | 
					    const payload = { id: pId, status: pStatus };
 | 
				
			||||||
 | 
					    return this.clientCommunityApp
 | 
				
			||||||
 | 
					      .send<string>(pattern, payload)
 | 
				
			||||||
 | 
					      .pipe(map((message: string) => ({ message })));
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  //POST parameter from API
 | 
					  //POST parameter from API
 | 
				
			||||||
  createCommunity(
 | 
					  createCommunity(name: string, province: string, canton: string, district: string
 | 
				
			||||||
    name: string,
 | 
					    , num_houses: number, phone: string, status: string, date_entry: Date, houses: []) {
 | 
				
			||||||
    province: string,
 | 
					 | 
				
			||||||
    canton: string,
 | 
					 | 
				
			||||||
    district: string,
 | 
					 | 
				
			||||||
    num_houses: number,
 | 
					 | 
				
			||||||
    phone: string,
 | 
					 | 
				
			||||||
    status: string,
 | 
					 | 
				
			||||||
    date_entry: Date,
 | 
					 | 
				
			||||||
    houses: [],
 | 
					 | 
				
			||||||
  ) {
 | 
					 | 
				
			||||||
    const pattern = { cmd: 'createCommunity' };
 | 
					    const pattern = { cmd: 'createCommunity' };
 | 
				
			||||||
    const payload = {
 | 
					    const payload = {
 | 
				
			||||||
      name: name,
 | 
					      name: name,
 | 
				
			||||||
| 
						 | 
					@ -234,6 +462,40 @@ export class AppService {
 | 
				
			||||||
      .pipe(map((message: string) => ({ message })));
 | 
					      .pipe(map((message: string) => ({ message })));
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  async findHousesCommunity(community_id: string) {
 | 
				
			||||||
 | 
					    const pattern = { cmd: 'findOneCommunity' }
 | 
				
			||||||
 | 
					    const payload = { _id: community_id }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    let callback = await this.clientCommunityApp
 | 
				
			||||||
 | 
					      .send<string>(pattern, payload)
 | 
				
			||||||
 | 
					      .pipe(
 | 
				
			||||||
 | 
					        map((response: string) => ({ response }))
 | 
				
			||||||
 | 
					      )
 | 
				
			||||||
 | 
					    const finalValue = await lastValueFrom(callback);
 | 
				
			||||||
 | 
					    const response = finalValue['response'];
 | 
				
			||||||
 | 
					    const houses = response['houses'];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return houses;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  saveTenant(id: string, number_house: string, tenant_id: string) {
 | 
				
			||||||
 | 
					    const pattern = { cmd: 'saveTenant' };
 | 
				
			||||||
 | 
					    const payload = { _id: id, number_house: number_house, tenant_id: tenant_id };
 | 
				
			||||||
 | 
					    return this.clientCommunityApp
 | 
				
			||||||
 | 
					      .send<string>(pattern, payload)
 | 
				
			||||||
 | 
					      .pipe(map((message: string) => ({ message })));
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  deleteCommunity(id: string) {
 | 
				
			||||||
 | 
					    const pattern = { cmd: 'removeCommunity' };
 | 
				
			||||||
 | 
					    const payload = { _id: id };
 | 
				
			||||||
 | 
					    return this.clientCommunityApp
 | 
				
			||||||
 | 
					      .send<string>(pattern, payload)
 | 
				
			||||||
 | 
					      .pipe(map((message: string) => ({ message })));
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // ====================== COMMON AREAS ===============================
 | 
					  // ====================== COMMON AREAS ===============================
 | 
				
			||||||
  //POST parameter from API
 | 
					  //POST parameter from API
 | 
				
			||||||
  createCommonArea(
 | 
					  createCommonArea(
 | 
				
			||||||
| 
						 | 
					@ -250,6 +512,7 @@ export class AppService {
 | 
				
			||||||
      hourMax: hourMax,
 | 
					      hourMax: hourMax,
 | 
				
			||||||
      bookable: bookable,
 | 
					      bookable: bookable,
 | 
				
			||||||
      community_id: community_id,
 | 
					      community_id: community_id,
 | 
				
			||||||
 | 
					      status: '1'
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
    return this.clientCommonAreaApp
 | 
					    return this.clientCommonAreaApp
 | 
				
			||||||
      .send<string>(pattern, payload)
 | 
					      .send<string>(pattern, payload)
 | 
				
			||||||
| 
						 | 
					@ -273,6 +536,55 @@ export class AppService {
 | 
				
			||||||
      .pipe(map((message: string) => ({ message })));
 | 
					      .pipe(map((message: string) => ({ message })));
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  //GET parameter from API
 | 
				
			||||||
 | 
					  findByCommunity(paramCommunityId: string) {
 | 
				
			||||||
 | 
					    const pattern = { cmd: 'findByCommunity' };
 | 
				
			||||||
 | 
					    const payload = { community_id: paramCommunityId };
 | 
				
			||||||
 | 
					    return this.clientCommonAreaApp
 | 
				
			||||||
 | 
					      .send<string>(pattern, payload)
 | 
				
			||||||
 | 
					      .pipe(map((message: string) => ({ message })));
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  //DELETE parameter from API
 | 
				
			||||||
 | 
					  deleteCommonArea(paramCommonAreaId: string) {
 | 
				
			||||||
 | 
					    const pattern = { cmd: 'removeCommonArea' };
 | 
				
			||||||
 | 
					    const payload = { id: paramCommonAreaId };
 | 
				
			||||||
 | 
					    return this.clientCommonAreaApp
 | 
				
			||||||
 | 
					      .send<string>(pattern, payload)
 | 
				
			||||||
 | 
					      .pipe(map((message: string) => ({ message })));
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  changeStatusCommonArea(pId: string, pStatus: string) {
 | 
				
			||||||
 | 
					    const pattern = { cmd: 'changeStatus' };
 | 
				
			||||||
 | 
					    const payload = { id: pId, status: pStatus };
 | 
				
			||||||
 | 
					    return this.clientCommonAreaApp
 | 
				
			||||||
 | 
					      .send<string>(pattern, payload)
 | 
				
			||||||
 | 
					      .pipe(map((message: string) => ({ message })));
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  updateCommonArea(
 | 
				
			||||||
 | 
					    id: string,
 | 
				
			||||||
 | 
					    name: string,
 | 
				
			||||||
 | 
					    hourMin: string,
 | 
				
			||||||
 | 
					    hourMax: string,
 | 
				
			||||||
 | 
					    bookable: number,
 | 
				
			||||||
 | 
					    community_id: string,
 | 
				
			||||||
 | 
					  ) {
 | 
				
			||||||
 | 
					    const pattern = { cmd: 'updateCommonArea' };
 | 
				
			||||||
 | 
					    const payload = {
 | 
				
			||||||
 | 
					      id: id,
 | 
				
			||||||
 | 
					      name: name,
 | 
				
			||||||
 | 
					      hourMin: hourMin,
 | 
				
			||||||
 | 
					      hourMax: hourMax,
 | 
				
			||||||
 | 
					      bookable: bookable,
 | 
				
			||||||
 | 
					      community_id: community_id,
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					    return this.clientCommonAreaApp
 | 
				
			||||||
 | 
					      .send<string>(pattern, payload)
 | 
				
			||||||
 | 
					      .pipe(map((message: string) => ({ message })));
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
  // ====================== GUESTS ===============================
 | 
					  // ====================== GUESTS ===============================
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  //POST parameter from API
 | 
					  //POST parameter from API
 | 
				
			||||||
| 
						 | 
					@ -283,17 +595,14 @@ export class AppService {
 | 
				
			||||||
    number_plate: string,
 | 
					    number_plate: string,
 | 
				
			||||||
    phone: number,
 | 
					    phone: number,
 | 
				
			||||||
    status: string,
 | 
					    status: string,
 | 
				
			||||||
 | 
					    tenant_id: string,
 | 
				
			||||||
 | 
					    community_id: string,
 | 
				
			||||||
    date_entry: Date,
 | 
					    date_entry: Date,
 | 
				
			||||||
  ) {
 | 
					  ) {
 | 
				
			||||||
    const pattern = { cmd: 'createGuest' };
 | 
					    const pattern = { cmd: 'createGuest' };
 | 
				
			||||||
    const payload = {
 | 
					    const payload = {
 | 
				
			||||||
      name: name,
 | 
					      name: name, last_name: last_name, dni: dni, number_plate: number_plate, phone: phone,
 | 
				
			||||||
      last_name: last_name,
 | 
					      status: status, tenant_id: tenant_id, community_id: community_id, date_entry: date_entry
 | 
				
			||||||
      dni: dni,
 | 
					 | 
				
			||||||
      number_plate: number_plate,
 | 
					 | 
				
			||||||
      phone: phone,
 | 
					 | 
				
			||||||
      status: status,
 | 
					 | 
				
			||||||
      date_entry: date_entry,
 | 
					 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
    return this.clientGuestApp
 | 
					    return this.clientGuestApp
 | 
				
			||||||
      .send<string>(pattern, payload)
 | 
					      .send<string>(pattern, payload)
 | 
				
			||||||
| 
						 | 
					@ -316,47 +625,11 @@ export class AppService {
 | 
				
			||||||
      .send<string>(pattern, payload)
 | 
					      .send<string>(pattern, payload)
 | 
				
			||||||
      .pipe(map((message: string) => ({ message })));
 | 
					      .pipe(map((message: string) => ({ message })));
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					 | 
				
			||||||
  // ====================== PAYMENTS ===============================
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  //POST parameter from API
 | 
					 | 
				
			||||||
  createPayment(
 | 
					 | 
				
			||||||
    date_payment: Date,
 | 
					 | 
				
			||||||
    mount: number,
 | 
					 | 
				
			||||||
    description: string,
 | 
					 | 
				
			||||||
    period: string,
 | 
					 | 
				
			||||||
    status: string,
 | 
					 | 
				
			||||||
    user_id: string,
 | 
					 | 
				
			||||||
    communty_id: string,
 | 
					 | 
				
			||||||
  ) {
 | 
					 | 
				
			||||||
    const pattern = { cmd: 'createPayment' };
 | 
					 | 
				
			||||||
    const payload = {
 | 
					 | 
				
			||||||
      date_payment: date_payment,
 | 
					 | 
				
			||||||
      mount: mount,
 | 
					 | 
				
			||||||
      description: description,
 | 
					 | 
				
			||||||
      period: period,
 | 
					 | 
				
			||||||
      status: status,
 | 
					 | 
				
			||||||
      user_id: user_id,
 | 
					 | 
				
			||||||
      communty_id: communty_id,
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
    return this.clientPaymentApp
 | 
					 | 
				
			||||||
      .send<string>(pattern, payload)
 | 
					 | 
				
			||||||
      .pipe(map((message: string) => ({ message })));
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  allPayments() {
 | 
					 | 
				
			||||||
    const pattern = { cmd: 'findAllPayments' };
 | 
					 | 
				
			||||||
    const payload = {};
 | 
					 | 
				
			||||||
    return this.clientPaymentApp
 | 
					 | 
				
			||||||
      .send<string>(pattern, payload)
 | 
					 | 
				
			||||||
      .pipe(map((message: string) => ({ message })));
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  //GET parameter from API
 | 
					  //GET parameter from API
 | 
				
			||||||
  findPayment(paramPaymentId: string) {
 | 
					  findGuestUser(paramGuestId: string) {
 | 
				
			||||||
    const pattern = { cmd: 'findOnePayment' };
 | 
					    const pattern = { cmd: 'findGuestUser' };
 | 
				
			||||||
    const payload = { id: paramPaymentId };
 | 
					    const payload = { di: paramGuestId };
 | 
				
			||||||
    return this.clientPaymentApp
 | 
					    return this.clientGuestApp
 | 
				
			||||||
      .send<string>(pattern, payload)
 | 
					      .send<string>(pattern, payload)
 | 
				
			||||||
      .pipe(map((message: string) => ({ message })));
 | 
					      .pipe(map((message: string) => ({ message })));
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
| 
						 | 
					@ -364,22 +637,14 @@ export class AppService {
 | 
				
			||||||
  // ====================== RESERVATIONS ===============================
 | 
					  // ====================== RESERVATIONS ===============================
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  //POST parameter from API
 | 
					  //POST parameter from API
 | 
				
			||||||
  createReservation(
 | 
					  createReservation(date: string, time: string, status: string,
 | 
				
			||||||
    start_time: string,
 | 
					    date_entry: Date, user_id: string, common_area_id: string,
 | 
				
			||||||
    finish_time: string,
 | 
					    common_area_name: string, community_id: string) {
 | 
				
			||||||
    status: string,
 | 
					 | 
				
			||||||
    date_entry: Date,
 | 
					 | 
				
			||||||
    user_id: string,
 | 
					 | 
				
			||||||
    common_area_id: string,
 | 
					 | 
				
			||||||
  ) {
 | 
					 | 
				
			||||||
    const pattern = { cmd: 'createReservation' };
 | 
					    const pattern = { cmd: 'createReservation' };
 | 
				
			||||||
    const payload = {
 | 
					    const payload = {
 | 
				
			||||||
      start_time: start_time,
 | 
					      date: date, time: time, status: status,
 | 
				
			||||||
      finish_time: finish_time,
 | 
					      date_entry: date_entry, user_id: user_id, common_area_id: common_area_id,
 | 
				
			||||||
      status: status,
 | 
					      common_area_name: common_area_name, community_id: community_id
 | 
				
			||||||
      date_entry: date_entry,
 | 
					 | 
				
			||||||
      user_id: user_id,
 | 
					 | 
				
			||||||
      common_area_id: common_area_id,
 | 
					 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
    return this.clientReservationApp
 | 
					    return this.clientReservationApp
 | 
				
			||||||
      .send<string>(pattern, payload)
 | 
					      .send<string>(pattern, payload)
 | 
				
			||||||
| 
						 | 
					@ -403,21 +668,42 @@ export class AppService {
 | 
				
			||||||
      .pipe(map((message: string) => ({ message })));
 | 
					      .pipe(map((message: string) => ({ message })));
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  findReservations(community_id: string) {
 | 
				
			||||||
 | 
					    const pattern = { cmd: 'findReservationsByCommunity' };
 | 
				
			||||||
 | 
					    const payload = { community_id: community_id };
 | 
				
			||||||
 | 
					    return this.clientReservationApp
 | 
				
			||||||
 | 
					      .send<string>(pattern, payload)
 | 
				
			||||||
 | 
					      .pipe(map((message: string) => ({ message })));
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  //DELETE parameter from API
 | 
				
			||||||
 | 
					  deleteReservation(paramReservationId: string) {
 | 
				
			||||||
 | 
					    const pattern = { cmd: 'removeReservation' };
 | 
				
			||||||
 | 
					    const payload = { id: paramReservationId };
 | 
				
			||||||
 | 
					    return this.clientReservationApp
 | 
				
			||||||
 | 
					      .send<string>(pattern, payload)
 | 
				
			||||||
 | 
					      .pipe(map((message: string) => ({ message })));
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // ====================== POSTS ===============================
 | 
					  // ====================== POSTS ===============================
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  //POST parameter from API
 | 
					  //POST parameter from API
 | 
				
			||||||
  createPost(
 | 
					  createPost(post: string, date_entry: Date, user_id: string,
 | 
				
			||||||
    post: string,
 | 
					    community_id: string) {
 | 
				
			||||||
    date_entry: Date,
 | 
					 | 
				
			||||||
    user_id: string,
 | 
					 | 
				
			||||||
    community_id: string,
 | 
					 | 
				
			||||||
  ) {
 | 
					 | 
				
			||||||
    const pattern = { cmd: 'createPost' };
 | 
					    const pattern = { cmd: 'createPost' };
 | 
				
			||||||
    const payload = {
 | 
					    const payload = {
 | 
				
			||||||
      post: post,
 | 
					      post: post, date_entry: date_entry, user_id: user_id,
 | 
				
			||||||
      date_entry: date_entry,
 | 
					      community_id: community_id
 | 
				
			||||||
      user_id: user_id,
 | 
					    };
 | 
				
			||||||
      community_id: community_id,
 | 
					    return this.clientPostApp
 | 
				
			||||||
 | 
					      .send<string>(pattern, payload)
 | 
				
			||||||
 | 
					      .pipe(map((message: string) => ({ message })));
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  updatePost(id: string, post: string, user_id: string, community_id: string) {
 | 
				
			||||||
 | 
					    const pattern = { cmd: 'updatePost' };
 | 
				
			||||||
 | 
					    const payload = {
 | 
				
			||||||
 | 
					      post: post, id: id, user_id: user_id, community_id: community_id
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
    return this.clientPostApp
 | 
					    return this.clientPostApp
 | 
				
			||||||
      .send<string>(pattern, payload)
 | 
					      .send<string>(pattern, payload)
 | 
				
			||||||
| 
						 | 
					@ -441,21 +727,24 @@ export class AppService {
 | 
				
			||||||
      .pipe(map((message: string) => ({ message })));
 | 
					      .pipe(map((message: string) => ({ message })));
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  //DELETE
 | 
				
			||||||
 | 
					  deletePost(paramPostId: string) {
 | 
				
			||||||
 | 
					    const pattern = { cmd: 'removePost' };
 | 
				
			||||||
 | 
					    const payload = { id: paramPostId };
 | 
				
			||||||
 | 
					    return this.clientPostApp
 | 
				
			||||||
 | 
					      .send<string>(pattern, payload)
 | 
				
			||||||
 | 
					      .pipe(map((message: string) => ({ message })));
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // ====================== COMMNENT POSTS ===============================
 | 
					  // ====================== COMMNENT POSTS ===============================
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  //Comment parameter from API
 | 
					  //Comment parameter from API
 | 
				
			||||||
  createComment(
 | 
					  createComment(comment: string, date_entry: Date, user_id: string,
 | 
				
			||||||
    comment: string,
 | 
					    post_id: string) {
 | 
				
			||||||
    date_entry: Date,
 | 
					 | 
				
			||||||
    user_id: string,
 | 
					 | 
				
			||||||
    post_id: string,
 | 
					 | 
				
			||||||
  ) {
 | 
					 | 
				
			||||||
    const pattern = { cmd: 'createComment' };
 | 
					    const pattern = { cmd: 'createComment' };
 | 
				
			||||||
    const payload = {
 | 
					    const payload = {
 | 
				
			||||||
      comment: comment,
 | 
					      comment: comment, date_entry: date_entry, user_id: user_id,
 | 
				
			||||||
      date_entry: date_entry,
 | 
					      post_id: post_id
 | 
				
			||||||
      user_id: user_id,
 | 
					 | 
				
			||||||
      post_id: post_id,
 | 
					 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
    return this.clientPostApp
 | 
					    return this.clientPostApp
 | 
				
			||||||
      .send<string>(pattern, payload)
 | 
					      .send<string>(pattern, payload)
 | 
				
			||||||
| 
						 | 
					@ -482,18 +771,12 @@ export class AppService {
 | 
				
			||||||
  // ====================== REPORTS ===============================
 | 
					  // ====================== REPORTS ===============================
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  //Report parameter from API
 | 
					  //Report parameter from API
 | 
				
			||||||
  createReport(
 | 
					  createReport(action: string, description: string, date_entry: Date,
 | 
				
			||||||
    action: string,
 | 
					    user_id: string) {
 | 
				
			||||||
    description: string,
 | 
					 | 
				
			||||||
    date_entry: Date,
 | 
					 | 
				
			||||||
    user_id: string,
 | 
					 | 
				
			||||||
  ) {
 | 
					 | 
				
			||||||
    const pattern = { cmd: 'createReport' };
 | 
					    const pattern = { cmd: 'createReport' };
 | 
				
			||||||
    const payload = {
 | 
					    const payload = {
 | 
				
			||||||
      action: action,
 | 
					      action: action, description: description, date_entry: date_entry,
 | 
				
			||||||
      description: description,
 | 
					      user_id: user_id
 | 
				
			||||||
      date_entry: date_entry,
 | 
					 | 
				
			||||||
      user_id: user_id,
 | 
					 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
    return this.clientReportApp
 | 
					    return this.clientReportApp
 | 
				
			||||||
      .send<string>(pattern, payload)
 | 
					      .send<string>(pattern, payload)
 | 
				
			||||||
| 
						 | 
					@ -532,4 +815,37 @@ export class AppService {
 | 
				
			||||||
      .send<string>(pattern, payload)
 | 
					      .send<string>(pattern, payload)
 | 
				
			||||||
      .pipe(map((message: string) => ({ message })));
 | 
					      .pipe(map((message: string) => ({ message })));
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* Function to generate combination of password */
 | 
				
			||||||
 | 
					  generatePassword() {
 | 
				
			||||||
 | 
					    var pass = '';
 | 
				
			||||||
 | 
					    var str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' +
 | 
				
			||||||
 | 
					      'abcdefghijklmnopqrstuvwxyz0123456789@#$';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    for (let i = 1; i <= 8; i++) {
 | 
				
			||||||
 | 
					      var char = Math.floor(Math.random()
 | 
				
			||||||
 | 
					        * str.length + 1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      pass += str.charAt(char)
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return pass;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  async saveTenantNumHouse(community_id: string, number_house: string, tenant_id: string) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    const pattern = { cmd: 'saveTenantNumHouse' }
 | 
				
			||||||
 | 
					    const payload = { _id: community_id, number_house: number_house, tenant_id: tenant_id }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return await this.clientCommunityApp
 | 
				
			||||||
 | 
					      .send<string>(pattern, payload)
 | 
				
			||||||
 | 
					      .pipe(
 | 
				
			||||||
 | 
					        map((response: string) => ({ response }))
 | 
				
			||||||
 | 
					      )
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,13 @@
 | 
				
			||||||
 | 
					# https://numtide.github.io/devshell
 | 
				
			||||||
 | 
					[[commands]]
 | 
				
			||||||
 | 
					package = "devshell.cli"
 | 
				
			||||||
 | 
					help = "Per project developer environments"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[commands]]
 | 
				
			||||||
 | 
					package = "nodejs"
 | 
				
			||||||
 | 
					help = "Node.js"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[commands]]
 | 
				
			||||||
 | 
					package = "nodePackages.expo-cli"
 | 
				
			||||||
 | 
					help = "Expo CLI"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,92 @@
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  "nodes": {
 | 
				
			||||||
 | 
					    "devshell": {
 | 
				
			||||||
 | 
					      "inputs": {
 | 
				
			||||||
 | 
					        "flake-utils": "flake-utils",
 | 
				
			||||||
 | 
					        "nixpkgs": "nixpkgs"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "locked": {
 | 
				
			||||||
 | 
					        "lastModified": 1658746384,
 | 
				
			||||||
 | 
					        "narHash": "sha256-CCJcoMOcXyZFrV1ag4XMTpAPjLWb4Anbv+ktXFI1ry0=",
 | 
				
			||||||
 | 
					        "owner": "numtide",
 | 
				
			||||||
 | 
					        "repo": "devshell",
 | 
				
			||||||
 | 
					        "rev": "0ffc7937bb5e8141af03d462b468bd071eb18e1b",
 | 
				
			||||||
 | 
					        "type": "github"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "original": {
 | 
				
			||||||
 | 
					        "owner": "numtide",
 | 
				
			||||||
 | 
					        "repo": "devshell",
 | 
				
			||||||
 | 
					        "type": "github"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "flake-utils": {
 | 
				
			||||||
 | 
					      "locked": {
 | 
				
			||||||
 | 
					        "lastModified": 1642700792,
 | 
				
			||||||
 | 
					        "narHash": "sha256-XqHrk7hFb+zBvRg6Ghl+AZDq03ov6OshJLiSWOoX5es=",
 | 
				
			||||||
 | 
					        "owner": "numtide",
 | 
				
			||||||
 | 
					        "repo": "flake-utils",
 | 
				
			||||||
 | 
					        "rev": "846b2ae0fc4cc943637d3d1def4454213e203cba",
 | 
				
			||||||
 | 
					        "type": "github"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "original": {
 | 
				
			||||||
 | 
					        "owner": "numtide",
 | 
				
			||||||
 | 
					        "repo": "flake-utils",
 | 
				
			||||||
 | 
					        "type": "github"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "flake-utils_2": {
 | 
				
			||||||
 | 
					      "locked": {
 | 
				
			||||||
 | 
					        "lastModified": 1656928814,
 | 
				
			||||||
 | 
					        "narHash": "sha256-RIFfgBuKz6Hp89yRr7+NR5tzIAbn52h8vT6vXkYjZoM=",
 | 
				
			||||||
 | 
					        "owner": "numtide",
 | 
				
			||||||
 | 
					        "repo": "flake-utils",
 | 
				
			||||||
 | 
					        "rev": "7e2a3b3dfd9af950a856d66b0a7d01e3c18aa249",
 | 
				
			||||||
 | 
					        "type": "github"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "original": {
 | 
				
			||||||
 | 
					        "owner": "numtide",
 | 
				
			||||||
 | 
					        "repo": "flake-utils",
 | 
				
			||||||
 | 
					        "type": "github"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "nixpkgs": {
 | 
				
			||||||
 | 
					      "locked": {
 | 
				
			||||||
 | 
					        "lastModified": 1643381941,
 | 
				
			||||||
 | 
					        "narHash": "sha256-pHTwvnN4tTsEKkWlXQ8JMY423epos8wUOhthpwJjtpc=",
 | 
				
			||||||
 | 
					        "owner": "NixOS",
 | 
				
			||||||
 | 
					        "repo": "nixpkgs",
 | 
				
			||||||
 | 
					        "rev": "5efc8ca954272c4376ac929f4c5ffefcc20551d5",
 | 
				
			||||||
 | 
					        "type": "github"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "original": {
 | 
				
			||||||
 | 
					        "owner": "NixOS",
 | 
				
			||||||
 | 
					        "ref": "nixpkgs-unstable",
 | 
				
			||||||
 | 
					        "repo": "nixpkgs",
 | 
				
			||||||
 | 
					        "type": "github"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "nixpkgs_2": {
 | 
				
			||||||
 | 
					      "locked": {
 | 
				
			||||||
 | 
					        "lastModified": 1659782844,
 | 
				
			||||||
 | 
					        "narHash": "sha256-tM/qhHFE61puBxh9ebP3BIG1fkRAT4rHqD3jCM0HXGY=",
 | 
				
			||||||
 | 
					        "owner": "NixOS",
 | 
				
			||||||
 | 
					        "repo": "nixpkgs",
 | 
				
			||||||
 | 
					        "rev": "c85e56bb060291eac3fb3c75d4e0e64f6836fcfe",
 | 
				
			||||||
 | 
					        "type": "github"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "original": {
 | 
				
			||||||
 | 
					        "id": "nixpkgs",
 | 
				
			||||||
 | 
					        "type": "indirect"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "root": {
 | 
				
			||||||
 | 
					      "inputs": {
 | 
				
			||||||
 | 
					        "devshell": "devshell",
 | 
				
			||||||
 | 
					        "flake-utils": "flake-utils_2",
 | 
				
			||||||
 | 
					        "nixpkgs": "nixpkgs_2"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "root": "root",
 | 
				
			||||||
 | 
					  "version": 7
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,20 @@
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  description = "virtual environments";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  inputs.devshell.url = "github:numtide/devshell";
 | 
				
			||||||
 | 
					  inputs.flake-utils.url = "github:numtide/flake-utils";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  outputs = { self, flake-utils, devshell, nixpkgs }:
 | 
				
			||||||
 | 
					    flake-utils.lib.eachDefaultSystem (system: {
 | 
				
			||||||
 | 
					      devShell =
 | 
				
			||||||
 | 
					        let pkgs = import nixpkgs {
 | 
				
			||||||
 | 
					          inherit system;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          overlays = [ devshell.overlay ];
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					        in
 | 
				
			||||||
 | 
					        pkgs.devshell.mkShell {
 | 
				
			||||||
 | 
					          imports = [ (pkgs.devshell.importTOML ./devshell.toml) ];
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,5 @@
 | 
				
			||||||
node_modules/
 | 
					node_modules/
 | 
				
			||||||
.expo/
 | 
					.expo/
 | 
				
			||||||
dist/
 | 
					 | 
				
			||||||
npm-debug.*
 | 
					npm-debug.*
 | 
				
			||||||
*.jks
 | 
					*.jks
 | 
				
			||||||
*.p8
 | 
					*.p8
 | 
				
			||||||
| 
						 | 
					@ -9,6 +8,6 @@ npm-debug.*
 | 
				
			||||||
*.mobileprovision
 | 
					*.mobileprovision
 | 
				
			||||||
*.orig.*
 | 
					*.orig.*
 | 
				
			||||||
web-build/
 | 
					web-build/
 | 
				
			||||||
 | 
					.vscode
 | 
				
			||||||
# macOS
 | 
					 | 
				
			||||||
.DS_Store
 | 
					.DS_Store
 | 
				
			||||||
 | 
					package-lock.json
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										178
									
								
								mobile-ui/App.js
								
								
								
								
							
							
						
						| 
						 | 
					@ -1,123 +1,75 @@
 | 
				
			||||||
import React, {useState} from "react";
 | 
					import React, { useContext, useState } from "react";
 | 
				
			||||||
import { Image } from "react-native";
 | 
					import {
 | 
				
			||||||
import AppLoading from "expo-app-loading";
 | 
					  NativeBaseProvider,
 | 
				
			||||||
import { useFonts } from '@use-expo/font';
 | 
					  Icon
 | 
				
			||||||
import { Asset } from "expo-asset";
 | 
					} from "native-base";
 | 
				
			||||||
import { Block, GalioProvider } from "galio-framework";
 | 
					import { NavigationContainer } from '@react-navigation/native';
 | 
				
			||||||
import { NavigationContainer } from "@react-navigation/native";
 | 
					import { createNativeStackNavigator } from '@react-navigation/native-stack';
 | 
				
			||||||
 | 
					import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';
 | 
				
			||||||
 | 
					import LogIn from "./components/LogIn";
 | 
				
			||||||
 | 
					import Home from "./components/Home";
 | 
				
			||||||
 | 
					import RecoverPassword from "./components/RecoverPassword";
 | 
				
			||||||
 | 
					import Reservas from "./components/Reservas";
 | 
				
			||||||
 | 
					import Profile from "./components/Profile";
 | 
				
			||||||
 | 
					import { MaterialCommunityIcons } from '@expo/vector-icons';
 | 
				
			||||||
 | 
					import AreaComun from "./components/AreaComun";
 | 
				
			||||||
 | 
					import { UserContext, UserContextProvider } from "./context/UserContext";
 | 
				
			||||||
 | 
					import AgregarInvitados from "./components/AgregarInvitados";
 | 
				
			||||||
 | 
					import Invitados from "./components/Invitados"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Before rendering any navigation stack
 | 
					const Stack = createNativeStackNavigator();
 | 
				
			||||||
import { enableScreens } from "react-native-screens";
 | 
					const Tab = createBottomTabNavigator();
 | 
				
			||||||
enableScreens();
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
import Screens from "./navigation/Screens";
 | 
					function HomeTab({ route }) {
 | 
				
			||||||
import { Images, articles, argonTheme } from "./constants";
 | 
					  const { user } = useContext(UserContext);
 | 
				
			||||||
 | 
					  const [selected, setSelected] = useState(0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// cache app images
 | 
					 | 
				
			||||||
const assetImages = [
 | 
					 | 
				
			||||||
  Images.Onboarding,
 | 
					 | 
				
			||||||
  Images.LogoOnboarding,
 | 
					 | 
				
			||||||
  Images.Logo,
 | 
					 | 
				
			||||||
  Images.Pro,
 | 
					 | 
				
			||||||
  Images.ArgonLogo,
 | 
					 | 
				
			||||||
  Images.iOSLogo,
 | 
					 | 
				
			||||||
  Images.androidLogo
 | 
					 | 
				
			||||||
];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// cache product images
 | 
					 | 
				
			||||||
articles.map(article => assetImages.push(article.image));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
function cacheImages(images) {
 | 
					 | 
				
			||||||
  return images.map(image => {
 | 
					 | 
				
			||||||
    if (typeof image === "string") {
 | 
					 | 
				
			||||||
      return Image.prefetch(image);
 | 
					 | 
				
			||||||
    } else {
 | 
					 | 
				
			||||||
      return Asset.fromModule(image).downloadAsync();
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  });
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export default props => {
 | 
					 | 
				
			||||||
  const [isLoadingComplete, setLoading] = useState(false);
 | 
					 | 
				
			||||||
  let [fontsLoaded] = useFonts({
 | 
					 | 
				
			||||||
    'ArgonExtra': require('./assets/font/argon.ttf'),
 | 
					 | 
				
			||||||
  });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  function _loadResourcesAsync() {
 | 
					 | 
				
			||||||
    return Promise.all([...cacheImages(assetImages)]);
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  function _handleLoadingError(error) {
 | 
					 | 
				
			||||||
    // In this case, you might want to report the error to your error
 | 
					 | 
				
			||||||
    // reporting service, for example Sentry
 | 
					 | 
				
			||||||
    console.warn(error);
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 function _handleFinishLoading() {
 | 
					 | 
				
			||||||
    setLoading(true);
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  if(!fontsLoaded && !isLoadingComplete) {
 | 
					 | 
				
			||||||
  return (
 | 
					  return (
 | 
				
			||||||
      <AppLoading
 | 
					
 | 
				
			||||||
        startAsync={_loadResourcesAsync}
 | 
					    <Tab.Navigator initialParams={user} initialRouteName="Comunicados" > 
 | 
				
			||||||
        onError={_handleLoadingError}
 | 
					    <Tab.Screen  name="Comunicados" component={Home}  initialParams={user} options={{headerStyle: {
 | 
				
			||||||
        onFinish={_handleFinishLoading}
 | 
					      backgroundColor: "#D7A86E"
 | 
				
			||||||
 | 
					    }, tabBarIcon: () => (<Icon mb="2" as={<MaterialCommunityIcons name={selected === 0 ? 'home' : 'home-outline'} />} color="#D7A86E" size="md" />)}} onclick={() => setSelected(0)}
 | 
				
			||||||
     /> 
 | 
					     /> 
 | 
				
			||||||
    );
 | 
					    <Tab.Screen  name="Reservas" component={Reservas } initialParams={user} options={{headerStyle: {
 | 
				
			||||||
  } else if(fontsLoaded) {
 | 
					      backgroundColor: "#D7A86E"
 | 
				
			||||||
 | 
					    }, tabBarIcon: () => (<Icon mb="2" as={<MaterialCommunityIcons name={selected === 1 ? 'tree' : 'tree-outline'} />} color="#D7A86E" size="md" />)} } onclick={() => setSelected(1)}  /> 
 | 
				
			||||||
 | 
					        <Tab.Screen  name="Invitados" component={Invitados} initialParams={user} options={{headerStyle: {
 | 
				
			||||||
 | 
					      backgroundColor: "#D7A86E"
 | 
				
			||||||
 | 
					    }, tabBarIcon: () => (<Icon mb="2" as={<MaterialCommunityIcons name={selected === 1 ? 'contacts' : 'contacts-outline'} />} color="#D7A86E" size="md" />)} } onclick={() => setSelected(1)}  /> 
 | 
				
			||||||
 | 
					    <Tab.Screen  name="Perfil" component={Profile} initialParams={user} options={{headerStyle: {
 | 
				
			||||||
 | 
					      backgroundColor: "#D7A86E"
 | 
				
			||||||
 | 
					    }, tabBarIcon: () => (<Icon mb="2" as={<MaterialCommunityIcons name={selected === 2 ? 'account' : 'account-outline'} />} color="#D7A86E" size="md" />)}} onclick={() => setSelected(2)} /> 
 | 
				
			||||||
 | 
					  </Tab.Navigator>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  )
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					export default function App() {
 | 
				
			||||||
  return (
 | 
					  return (
 | 
				
			||||||
 | 
					    <NativeBaseProvider>
 | 
				
			||||||
 | 
					      <UserContextProvider>
 | 
				
			||||||
        <NavigationContainer>
 | 
					        <NavigationContainer>
 | 
				
			||||||
        <GalioProvider theme={argonTheme}>
 | 
					          <Stack.Navigator initialRouteName="LogIn">
 | 
				
			||||||
          <Block flex>
 | 
					            <Stack.Screen name="Inicio" component={LogIn} options={{
 | 
				
			||||||
            <Screens />
 | 
					              headerStyle: {
 | 
				
			||||||
          </Block>
 | 
					                backgroundColor: "#D7A86E"
 | 
				
			||||||
        </GalioProvider>
 | 
					              }
 | 
				
			||||||
 | 
					            }} />
 | 
				
			||||||
 | 
					            <Stack.Screen name="Comunicados" component={HomeTab} options={{ headerShown: false }} />
 | 
				
			||||||
 | 
					            <Stack.Screen name="Password" component={RecoverPassword} />
 | 
				
			||||||
 | 
					            <Stack.Screen name="area" component={AreaComun} options={{
 | 
				
			||||||
 | 
					              headerStyle: {
 | 
				
			||||||
 | 
					                backgroundColor: "#D7A86E"
 | 
				
			||||||
 | 
					              }
 | 
				
			||||||
 | 
					            }} />
 | 
				
			||||||
 | 
					             <Stack.Screen name="invitado" component={AgregarInvitados} options={{
 | 
				
			||||||
 | 
					              headerStyle: {
 | 
				
			||||||
 | 
					                backgroundColor: "#D7A86E"
 | 
				
			||||||
 | 
					              }
 | 
				
			||||||
 | 
					            }} />
 | 
				
			||||||
 | 
					          </Stack.Navigator>
 | 
				
			||||||
        </NavigationContainer>
 | 
					        </NavigationContainer>
 | 
				
			||||||
 | 
					      </UserContextProvider>
 | 
				
			||||||
 | 
					    </NativeBaseProvider>
 | 
				
			||||||
  );
 | 
					  );
 | 
				
			||||||
  } else {
 | 
					 | 
				
			||||||
    return null
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// export default class App extends React.Component {
 | 
					 | 
				
			||||||
//   state = {
 | 
					 | 
				
			||||||
//     isLoadingComplete: false
 | 
					 | 
				
			||||||
//   };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
//   render() {
 | 
					 | 
				
			||||||
//     if (!this.state.isLoadingComplete) {
 | 
					 | 
				
			||||||
//       return (
 | 
					 | 
				
			||||||
//         <AppLoading
 | 
					 | 
				
			||||||
//           startAsync={this._loadResourcesAsync}
 | 
					 | 
				
			||||||
//           onError={this._handleLoadingError}
 | 
					 | 
				
			||||||
//           onFinish={this._handleFinishLoading}
 | 
					 | 
				
			||||||
//         />
 | 
					 | 
				
			||||||
//       );
 | 
					 | 
				
			||||||
//     } else {
 | 
					 | 
				
			||||||
//       return (
 | 
					 | 
				
			||||||
//         <NavigationContainer>
 | 
					 | 
				
			||||||
//           <GalioProvider theme={argonTheme}>
 | 
					 | 
				
			||||||
//             <Block flex>
 | 
					 | 
				
			||||||
//               <Screens />
 | 
					 | 
				
			||||||
//             </Block>
 | 
					 | 
				
			||||||
//           </GalioProvider>
 | 
					 | 
				
			||||||
//         </NavigationContainer>
 | 
					 | 
				
			||||||
//       );
 | 
					 | 
				
			||||||
//     }
 | 
					 | 
				
			||||||
//   }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
//   _loadResourcesAsync = async () => {
 | 
					 | 
				
			||||||
//     return Promise.all([...cacheImages(assetImages)]);
 | 
					 | 
				
			||||||
//   };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
//   _handleLoadingError = error => {
 | 
					 | 
				
			||||||
//     // In this case, you might want to report the error to your error
 | 
					 | 
				
			||||||
//     // reporting service, for example Sentry
 | 
					 | 
				
			||||||
//     console.warn(error);
 | 
					 | 
				
			||||||
//   };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
//   _handleFinishLoading = () => {
 | 
					 | 
				
			||||||
//     this.setState({ isLoadingComplete: true });
 | 
					 | 
				
			||||||
//   };
 | 
					 | 
				
			||||||
// }
 | 
					 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,25 +0,0 @@
 | 
				
			||||||
import { StatusBar } from 'expo-status-bar';
 | 
					 | 
				
			||||||
import { StyleSheet, Text, View } from 'react-native';
 | 
					 | 
				
			||||||
//import { NavigationContainer } from "@react-navigation/native";
 | 
					 | 
				
			||||||
import { Button } from './components';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export default function App() {
 | 
					 | 
				
			||||||
  return (
 | 
					 | 
				
			||||||
    <View style={styles.container}>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      <Button>testing</Button>
 | 
					 | 
				
			||||||
      <Text>Open up App.tsx to start working on your app!</Text>
 | 
					 | 
				
			||||||
      <StatusBar style="auto" />
 | 
					 | 
				
			||||||
    </View>
 | 
					 | 
				
			||||||
  );
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const styles = StyleSheet.create({
 | 
					 | 
				
			||||||
  container: {
 | 
					 | 
				
			||||||
    flex: 1,
 | 
					 | 
				
			||||||
    backgroundColor: '#fff',
 | 
					 | 
				
			||||||
    alignItems: 'center',
 | 
					 | 
				
			||||||
    justifyContent: 'center',
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
});
 | 
					 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,9 @@
 | 
				
			||||||
 | 
					# NativeBase Expo Template
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The official NativeBase template for [Expo](https://docs.expo.io/)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Usage
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```sh
 | 
				
			||||||
 | 
					expo init my-app --template @native-base/expo-template
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
| 
						 | 
					@ -1,18 +1,13 @@
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  "expo": {
 | 
					  "expo": {
 | 
				
			||||||
    "name": "Argon FREE React Native",
 | 
					    "name": "my-app",
 | 
				
			||||||
    "slug": "argon-free-react-native",
 | 
					    "slug": "my-app",
 | 
				
			||||||
    "privacy": "public",
 | 
					    "version": "1.0.0",
 | 
				
			||||||
    "platforms": [
 | 
					 | 
				
			||||||
      "ios",
 | 
					 | 
				
			||||||
      "android"
 | 
					 | 
				
			||||||
    ],
 | 
					 | 
				
			||||||
    "version": "1.7.1",
 | 
					 | 
				
			||||||
    "orientation": "portrait",
 | 
					    "orientation": "portrait",
 | 
				
			||||||
    "icon": "./assets/icon.png",
 | 
					    "icon": "./assets/icon.png",
 | 
				
			||||||
    "splash": {
 | 
					    "splash": {
 | 
				
			||||||
      "image": "./assets/splash.png",
 | 
					      "image": "./assets/splash.png",
 | 
				
			||||||
      "resizeMode": "cover",
 | 
					      "resizeMode": "contain",
 | 
				
			||||||
      "backgroundColor": "#ffffff"
 | 
					      "backgroundColor": "#ffffff"
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "updates": {
 | 
					    "updates": {
 | 
				
			||||||
| 
						 | 
					@ -22,8 +17,25 @@
 | 
				
			||||||
      "**/*"
 | 
					      "**/*"
 | 
				
			||||||
    ],
 | 
					    ],
 | 
				
			||||||
    "ios": {
 | 
					    "ios": {
 | 
				
			||||||
      "supportsTablet": true
 | 
					      "supportsTablet": true,
 | 
				
			||||||
 | 
					      "infoPlist": {
 | 
				
			||||||
 | 
					        "NSAppTransportSecurity": {
 | 
				
			||||||
 | 
					          "NSAllowsArbitraryLoads" : true,
 | 
				
			||||||
 | 
					          "NSAllowsArbitraryLoadsForMedia": true, 
 | 
				
			||||||
 | 
					          "NSAllowsArbitraryLoadsInWebContent": true, 
 | 
				
			||||||
 | 
					          "NSExceptionAllowsInsecureHTTPLoads": true
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
    "description": "Argon React Native, based on Argon Design System. Coded by Creative Tim"
 | 
					      "bundleIdentifier": "1.1.0"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "android": {
 | 
				
			||||||
 | 
					      "adaptiveIcon": {
 | 
				
			||||||
 | 
					        "foregroundImage": "./assets/adaptive-icon.png",
 | 
				
			||||||
 | 
					        "backgroundColor": "#FFFFFF"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "web": {
 | 
				
			||||||
 | 
					      "favicon": "./assets/favicon.png"
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
		 After Width: | Height: | Size: 17 KiB  | 
| 
		 After Width: | Height: | Size: 1.4 KiB  | 
| 
		 Before Width: | Height: | Size: 66 KiB After Width: | Height: | Size: 22 KiB  | 
| 
		 Before Width: | Height: | Size: 13 KiB  | 
| 
		 Before Width: | Height: | Size: 4.5 KiB  | 
| 
		 Before Width: | Height: | Size: 9.4 KiB  | 
| 
		 Before Width: | Height: | Size: 3.8 KiB  | 
| 
		 Before Width: | Height: | Size: 7.9 KiB  | 
| 
		 Before Width: | Height: | Size: 1.5 KiB  | 
| 
		 Before Width: | Height: | Size: 114 KiB  | 
| 
		 Before Width: | Height: | Size: 271 KiB  | 
| 
		 Before Width: | Height: | Size: 778 KiB  | 
| 
		 Before Width: | Height: | Size: 2.9 KiB  | 
| 
		 Before Width: | Height: | Size: 6.8 KiB  | 
| 
		 Before Width: | Height: | Size: 77 KiB  | 
| 
		 Before Width: | Height: | Size: 74 KiB  | 
| 
		 Before Width: | Height: | Size: 7.0 KiB  | 
| 
		 After Width: | Height: | Size: 37 KiB  | 
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 24 24" width="24" height="24"><g class="nc-icon-wrapper" fill="#444444"><path fill="#444444" d="M20,0H4C2.3,0,1,1.3,1,3v20c0,0.6,0.4,1,1,1h20c0.6,0,1-0.4,1-1V3C23,1.3,21.7,0,20,0z M12,16 c-3.3,0-6-2.7-6-6c0-0.6,0.4-1,1-1s1,0.4,1,1c0,2.2,1.8,4,4,4s4-1.8,4-4c0-0.6,0.4-1,1-1s1,0.4,1,1C18,13.3,15.3,16,12,16z M20,4H4 C3.4,4,3,3.6,3,3s0.4-1,1-1h16c0.6,0,1,0.4,1,1S20.6,4,20,4z"/></g></svg>
 | 
					 | 
				
			||||||
| 
		 Before Width: | Height: | Size: 497 B  | 
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 12 12" width="12" height="12"><g class="nc-icon-wrapper" fill="#444444"><path d="M1,10.5A1.5,1.5,0,0,0,2.5,12h7A1.5,1.5,0,0,0,11,10.5V7H1Z" fill="#444444"/> <path d="M9.838,4,8.171.665a.75.75,0,0,0-1.342.67L8.162,4H3.838L5.171,1.335A.75.75,0,0,0,3.829.665L2.162,4H0V6H12V4Z" fill="#444444" data-color="color-2"/></g></svg>
 | 
					 | 
				
			||||||
| 
		 Before Width: | Height: | Size: 434 B  | 
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 24 24" width="24" height="24"><g class="nc-icon-wrapper" fill="#444444"><path d="M20,10V8A8,8,0,0,0,4,8v2a4.441,4.441,0,0,1-1.547,3.193A4.183,4.183,0,0,0,1,16c0,2.5,4.112,4,11,4s11-1.5,11-4a4.183,4.183,0,0,0-1.453-2.807A4.441,4.441,0,0,1,20,10Z" fill="#444444"/> <path data-color="color-2" d="M9.145,21.9a2.992,2.992,0,0,0,5.71,0c-.894.066-1.844.1-2.855.1S10.039,21.968,9.145,21.9Z" fill="#444444"/></g></svg>
 | 
					 | 
				
			||||||
| 
		 Before Width: | Height: | Size: 521 B  | 
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 24 24" width="24" height="24"><g class="nc-icon-wrapper" fill="#444444"><rect data-color="color-2" x="4" y="10" width="4" height="3" fill="#444444"/> <rect data-color="color-2" x="10" y="10" width="4" height="3" fill="#444444"/> <rect data-color="color-2" x="4" y="15" width="4" height="3" fill="#444444"/> <rect data-color="color-2" x="10" y="15" width="4" height="3" fill="#444444"/> <rect data-color="color-2" x="16" y="10" width="4" height="3" fill="#444444"/> <path d="M23,3H18V1a1,1,0,0,0-2,0V3H8V1A1,1,0,0,0,6,1V3H1A1,1,0,0,0,0,4V22a1,1,0,0,0,1,1H23a1,1,0,0,0,1-1V4A1,1,0,0,0,23,3ZM22,21H2V7H22Z" fill="#444444"/></g></svg>
 | 
					 | 
				
			||||||
| 
		 Before Width: | Height: | Size: 742 B  | 
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 24 24" width="24" height="24"><g class="nc-icon-wrapper" fill="#444444"><path data-color="color-2" fill="#444444" d="M13,11h10.949C23.466,5.181,18.819,0.534,13,0.051V11z"/> <path fill="#444444" d="M12.414,13l-8.155,8.155C6.351,22.926,9.051,24,12,24c6.279,0,11.438-4.851,11.949-11H12.414z"/> <path fill="#444444" d="M11,11.586V0.051C4.851,0.562,0,5.721,0,12c0,2.949,1.074,5.649,2.845,7.741L11,11.586z"/></g></svg>
 | 
					 | 
				
			||||||
| 
		 Before Width: | Height: | Size: 524 B  | 
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 24 24" width="24" height="24"><g class="nc-icon-wrapper" fill="#444444"><path fill="#444444" d="M18.768,1.36C18.578,1.132,18.297,1,18,1H6C5.703,1,5.422,1.132,5.232,1.36l-5,6 c-0.294,0.353-0.31,0.861-0.039,1.231l11,15C11.382,23.848,11.682,24,12,24s0.618-0.152,0.807-0.409l11-15 c0.271-0.371,0.256-0.878-0.039-1.231L18.768,1.36z M19,9H5V7h14V9z"/></g></svg>
 | 
					 | 
				
			||||||
| 
		 Before Width: | Height: | Size: 467 B  | 
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 16 16" width="16" height="16"><g class="nc-icon-wrapper" fill="#444444"><path d="M8,15A7,7,0,0,1,3.333,2.783l1.334,1.49a5,5,0,1,0,6.666,0l1.333-1.49A7,7,0,0,1,8,15Z" fill="#444444"/> <rect x="7" width="2" height="7" fill="#444444" data-color="color-2"/></g></svg>
 | 
					 | 
				
			||||||
| 
		 Before Width: | Height: | Size: 375 B  | 
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 16 16" width="16" height="16"><g class="nc-icon-wrapper" fill="#444444"><path fill="#444444" d="M16,3.6L15.2,2C8.3,4,4.8,8.4,4.8,8.4L1.6,6L0,7.6L4.8,14C8.5,7.1,16,3.6,16,3.6z"/></g></svg>
 | 
					 | 
				
			||||||
| 
		 Before Width: | Height: | Size: 299 B  | 
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 24 24" width="24" height="24"><g class="nc-icon-wrapper" fill="#444444"><rect x="22" y="11" fill="#444444" width="2" height="6"/> <path data-color="color-2" fill="#444444" d="M13.241,15.73C12.847,15.91,12.43,16,12,16s-0.847-0.09-1.24-0.269L4,12.658V18 c0,2.626,4.024,4,8,4s8-1.374,8-4v-5.341L13.241,15.73z"/> <path fill="#444444" d="M23.414,7.09l-11-5c-0.263-0.119-0.564-0.119-0.827,0l-11,5C0.229,7.252,0,7.607,0,8s0.229,0.748,0.586,0.91 l11,5C11.718,13.97,11.859,14,12,14s0.282-0.03,0.414-0.09l11-5C23.771,8.748,24,8.393,24,8S23.771,7.252,23.414,7.09z"/></g></svg>
 | 
					 | 
				
			||||||
| 
		 Before Width: | Height: | Size: 677 B  | 
| 
						 | 
					@ -1,5 +0,0 @@
 | 
				
			||||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
 | 
					 | 
				
			||||||
    <g class="nc-icon-wrapper" fill="#444444">
 | 
					 | 
				
			||||||
        <path d="M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z"/>
 | 
					 | 
				
			||||||
    </g>
 | 
					 | 
				
			||||||
</svg>
 | 
					 | 
				
			||||||
| 
		 Before Width: | Height: | Size: 276 B  | 
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 24 24" width="24" height="24"><g class="nc-icon-wrapper" fill="#444444"><polygon fill="#444444" points="17,1.382 13,3.382 13,22.618 17,20.618 "/> <polygon data-color="color-2" fill="#444444" points="11,3.382 7,1.382 7,20.618 11,22.618 "/> <path fill="#444444" d="M5,1.434L0.485,4.143C0.185,4.323,0,4.648,0,5v19l5-3.234V1.434z"/> <path data-color="color-2" fill="#444444" d="M23.515,4.143L19,1.434v19.332L24,24V5C24,4.648,23.815,4.323,23.515,4.143z"/></g></svg>
 | 
					 | 
				
			||||||
| 
		 Before Width: | Height: | Size: 572 B  | 
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 12 12" width="12" height="12"><g class="nc-icon-wrapper" fill="#444444"><path d="M11,9H1a1,1,0,0,0,0,2H11a1,1,0,0,0,0-2Z" fill="#444444"/> <path d="M11,1H1A1,1,0,0,0,1,3H11a1,1,0,0,0,0-2Z" fill="#444444"/> <path d="M11,5H1A1,1,0,0,0,1,7H11a1,1,0,0,0,0-2Z" fill="#444444" data-color="color-2"/></g></svg>
 | 
					 | 
				
			||||||
| 
		 Before Width: | Height: | Size: 415 B  | 
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 12 12" width="12" height="12"><g class="nc-icon-wrapper" fill="#444444"><polygon points="6 5.882 2.148 2.03 0.074 4.104 6 10.03 11.926 4.104 9.852 2.03 6 5.882" fill="#444444"/></g></svg>
 | 
					 | 
				
			||||||
| 
		 Before Width: | Height: | Size: 299 B  | 
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 12 12" width="12" height="12"><g class="nc-icon-wrapper" fill="#444444"><polygon points="7.92 0 1.92 6 7.92 12 10.02 9.9 6.12 6 10.02 2.1 7.92 0" fill="#444444"></polygon></g></svg>
 | 
					 | 
				
			||||||
| 
		 Before Width: | Height: | Size: 293 B  | 
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 12 12" width="12" height="12"><g class="nc-icon-wrapper" fill="#444444"><polygon points="1.98 2.1 5.88 6 1.98 9.9 4.08 12 10.08 6 4.08 0 1.98 2.1" fill="#444444"/></g></svg>
 | 
					 | 
				
			||||||
| 
		 Before Width: | Height: | Size: 285 B  | 
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 16 16" width="16" height="16"><g class="nc-icon-wrapper" fill="#444444"><path fill="#444444" d="M8,2c0.6,0,1.1,0.2,1.5,0.7l0.7,0.7l1.5-1.3L11,1.3C10.2,0.5,9.1,0,8,0C5.8,0,4,1.8,4,4v1.5 C2.8,6.6,2,8.2,2,10c0,3.3,2.7,6,6,6s6-2.7,6-6s-2.7-6-6-6C7.3,4,6.6,4.1,6,4.4V4C6,2.9,6.9,2,8,2z M8,7c1.1,0,2,0.9,2,2 c0,0.7-0.4,1.4-1,1.7V13H7v-2.3c-0.6-0.3-1-1-1-1.7C6,7.9,6.9,7,8,7z"/></g></svg>
 | 
					 | 
				
			||||||
| 
		 Before Width: | Height: | Size: 493 B  | 
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 24 24" width="24" height="24"><g class="nc-icon-wrapper" fill="#444444"><path fill="#444444" d="M20.4,6.1c-1.1-0.5-2.2-0.8-3.4-0.8c-1.6,0-3,0.5-4.3,0.9c-0.8,0.3-1.6,0.5-2.2,0.5c-0.4,0-0.6-0.1-0.7-0.3 c0-0.1,0.1-0.6,0.2-0.9c0.3-0.9,0.6-2-0.2-3.1c-0.5-0.6-1.3-1-2.2-1c-0.9,0-1.7,0.3-2.5,0.8C1.9,4.4,0,8.1,0,12c0,6.6,5.4,12,12,12 c5.3,0,10.1-3.6,11.6-8.8C23.7,14.6,25.1,8.4,20.4,6.1z M3,12c0-1.1,0.9-2,2-2s2,0.9,2,2s-0.9,2-2,2S3,13.1,3,12z M7.5,19 c-1.1,0-2-0.9-2-2s0.9-2,2-2s2,0.9,2,2S8.6,19,7.5,19z M13,21c-1.1,0-2-0.9-2-2s0.9-2,2-2s2,0.9,2,2S14.1,21,13,21z M17,15 c-1.7,0-3-1.3-3-3s1.3-3,3-3s3,1.3,3,3S18.7,15,17,15z"/></g></svg>
 | 
					 | 
				
			||||||
| 
		 Before Width: | Height: | Size: 741 B  | 
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 16 16" width="16" height="16"><g class="nc-icon-wrapper" fill="#444444"><path data-color="color-2" fill="#444444" d="M10,8H8v2H6V8H4V6h2V4h2v2h2V8z"/> <path fill="#444444" d="M7,14c-3.86,0-7-3.14-7-7s3.14-7,7-7s7,3.14,7,7S10.86,14,7,14z M7,2C4.243,2,2,4.243,2,7s2.243,5,5,5 s5-2.243,5-5S9.757,2,7,2z"/> <path data-color="color-2" fill="#444444" d="M15.707,14.293L13.314,11.9c-0.411,0.529-0.885,1.003-1.414,1.414l2.393,2.393 C14.488,15.902,14.744,16,15,16s0.512-0.098,0.707-0.293C16.098,15.316,16.098,14.684,15.707,14.293z"/> </g></svg>
 | 
					 | 
				
			||||||
| 
		 Before Width: | Height: | Size: 647 B  | 
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 16 16" width="16" height="16"><g class="nc-icon-wrapper" fill="#444444"><path fill="#444444" d="M13.9,0.5C13.7,0.2,13.4,0,13,0H3C2.6,0,2.3,0.2,2.1,0.5C0,4.5,0,4.7,0,5c0,1.1,0.9,2,2,2v8c0,0.6,0.4,1,1,1 h10c0.6,0,1-0.4,1-1V7c1.1,0,2-0.9,2-2C16,4.7,16,4.5,13.9,0.5z M10,14v-4H6v4H4V6.7C4.3,6.9,4.6,7,5,7c0.6,0,1.1-0.3,1.5-0.7 C6.9,6.7,7.4,7,8,7s1.1-0.3,1.5-0.7C9.9,6.7,10.4,7,11,7c0.4,0,0.7-0.1,1-0.3V14H10z"></path></g></svg>
 | 
					 | 
				
			||||||
| 
		 Before Width: | Height: | Size: 535 B  | 
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 24 24" width="24" height="24"><g class="nc-icon-wrapper" fill="#444444"><path d="M23.58.424A1,1,0,0,0,22.819.13C8.791.862,3.609,13.358,3.559,13.484a1,1,0,0,0,.22,1.08l5.657,5.657a1,1,0,0,0,1.085.218c.125-.051,12.554-5.291,13.348-19.253A1,1,0,0,0,23.58.424Zm-8.166,10.99a2,2,0,1,1,0-2.828A2,2,0,0,1,15.414,11.414Z" fill="#444444"/> <path data-color="color-2" d="M1.113,18.844a2.844,2.844,0,1,1,4.022,4.022C4.024,23.977,0,24,0,24S0,19.954,1.113,18.844Z" fill="#444444"/> <path id="color-2" d="M10.357,2.341A8.911,8.911,0,0,0,2.522,4.825a9.084,9.084,0,0,0-1.384,1.8,1,1,0,0,0,.155,1.215l1.989,1.99A26.623,26.623,0,0,1,10.357,2.341Z" fill="#444444"/> <path id="color-3" d="M21.659,13.643a8.911,8.911,0,0,1-2.484,7.835,9.084,9.084,0,0,1-1.8,1.384,1,1,0,0,1-1.215-.155l-1.99-1.989A26.623,26.623,0,0,0,21.659,13.643Z" fill="#444444"/></g></svg>
 | 
					 | 
				
			||||||
| 
		 Before Width: | Height: | Size: 949 B  | 
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 16 16" width="16" height="16"><g class="nc-icon-wrapper" fill="#444444"><path fill="#444444" d="M8,0C3.6,0,0,3.6,0,8c0,4.4,3.6,8,8,8s8-3.6,8-8C16,3.6,12.4,0,8,0z M8,10c-1.1,0-2-0.9-2-2c0-1.1,0.9-2,2-2 s2,0.9,2,2C10,9.1,9.1,10,8,10z M8,2c0.9,0,1.8,0.2,2.6,0.6L9.044,4.156c-0.761-0.207-1.327-0.207-2.089,0L5.4,2.6 C6.2,2.2,7.1,2,8,2z M2,8c0-0.9,0.2-1.8,0.6-2.6l1.556,1.556c-0.207,0.761-0.207,1.327,0,2.089L2.6,10.6C2.2,9.8,2,8.9,2,8z M8,14 c-0.9,0-1.8-0.2-2.6-0.6l1.556-1.556c0.761,0.207,1.327,0.207,2.089,0L10.6,13.4C9.8,13.8,8.9,14,8,14z M13.4,10.6l-1.556-1.556 c0.207-0.761,0.207-1.327,0-2.089L13.4,5.4C13.8,6.2,14,7.1,14,8C14,8.9,13.8,9.8,13.4,10.6z"/></g></svg>
 | 
					 | 
				
			||||||
| 
		 Before Width: | Height: | Size: 776 B  | 
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 24 24" width="24" height="24"><g class="nc-icon-wrapper" fill="#444444"><path fill="#444444" d="M6.5,11h11c3,0,5.5-2.5,5.5-5.5S20.5,0,17.5,0h-11C3.5,0,1,2.5,1,5.5S3.5,11,6.5,11z M6.5,2 C8.4,2,10,3.6,10,5.5S8.4,9,6.5,9S3,7.4,3,5.5S4.6,2,6.5,2z"></path> <path data-color="color-2" fill="#444444" d="M17.5,13h-11c-3,0-5.5,2.5-5.5,5.5S3.5,24,6.5,24h11c3,0,5.5-2.5,5.5-5.5S20.5,13,17.5,13z M17.5,22c-1.9,0-3.5-1.6-3.5-3.5s1.6-3.5,3.5-3.5s3.5,1.6,3.5,3.5S19.4,22,17.5,22z"></path></g></svg>
 | 
					 | 
				
			||||||
| 
		 Before Width: | Height: | Size: 596 B  | 
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 16 16" width="16" height="16"><g class="nc-icon-wrapper" fill="#444444"><path fill="#444444" d="M11,12H1c-0.553,0-1-0.447-1-1V1c0-0.552,0.447-1,1-1h10c0.553,0,1,0.448,1,1v10C12,11.553,11.553,12,11,12z "></path> <path data-color="color-2" fill="#444444" d="M15,16H4v-2h10V4h2v11C16,15.553,15.553,16,15,16z"></path></g></svg>
 | 
					 | 
				
			||||||
| 
		 Before Width: | Height: | Size: 435 B  | 
| 
		 Before Width: | Height: | Size: 298 KiB After Width: | Height: | Size: 47 KiB  | 
| 
						 | 
					@ -0,0 +1,125 @@
 | 
				
			||||||
 | 
					import React, { useContext, useState } from "react";
 | 
				
			||||||
 | 
					import { API } from "../environment/api";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import {
 | 
				
			||||||
 | 
					  Box, Button,
 | 
				
			||||||
 | 
					  Center, FormControl, Heading, ScrollView, VStack
 | 
				
			||||||
 | 
					} from "native-base";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import { StyleSheet, TextInput } from "react-native";
 | 
				
			||||||
 | 
					import { UserContext } from "../context/UserContext";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default function AgregarInvitados({ navigation }) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  const baseURL = `${API.BASE_URL}/guest/createGuest/`;
 | 
				
			||||||
 | 
					  const [name, setName] = useState(); 
 | 
				
			||||||
 | 
					  const [apellido, setApellido] =useState(); 
 | 
				
			||||||
 | 
					  const [dni, setDNI] = useState(); 
 | 
				
			||||||
 | 
					  const [phone, setPhone] = useState();
 | 
				
			||||||
 | 
					  const [number_plate, setNumber_plate] = useState();
 | 
				
			||||||
 | 
					  const [tenant_id, setTenant_id] = useState();
 | 
				
			||||||
 | 
					  const [community_id, setCommunity_id] = useState();
 | 
				
			||||||
 | 
					  const { user } = useContext(UserContext);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  const saveInvitado = async() => {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    const data = {
 | 
				
			||||||
 | 
					      "name": name,
 | 
				
			||||||
 | 
					      "last_name": apellido,
 | 
				
			||||||
 | 
					      "dni": dni,
 | 
				
			||||||
 | 
					      "phone": phone,
 | 
				
			||||||
 | 
					      "number_plate": number_plate,
 | 
				
			||||||
 | 
					      "tenant_id": user.id,
 | 
				
			||||||
 | 
					      "community_id": user.community_id
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    try {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      await fetch(baseURL, {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        cache: 'no-cache', 
 | 
				
			||||||
 | 
					        method: 'POST', 
 | 
				
			||||||
 | 
					        body: JSON.stringify(data), 
 | 
				
			||||||
 | 
					        headers: {
 | 
				
			||||||
 | 
					          'Content-Type': 'application/json'
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					      .then(response => {
 | 
				
			||||||
 | 
					        if (response.status != 201){
 | 
				
			||||||
 | 
					          console.log('ocurrio un error ');
 | 
				
			||||||
 | 
					        }else{
 | 
				
			||||||
 | 
					          return response.json(); 
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					      
 | 
				
			||||||
 | 
					    } catch (error) {
 | 
				
			||||||
 | 
					      console.log("ERROR: " + error);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					    return (
 | 
				
			||||||
 | 
					        <Center>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          <ScrollView width='100%' h='550' ml='36' _contentContainerStyle={{
 | 
				
			||||||
 | 
					      px: "20px",
 | 
				
			||||||
 | 
					      mb: "4",
 | 
				
			||||||
 | 
					      minW: "72"
 | 
				
			||||||
 | 
					    }}>
 | 
				
			||||||
 | 
					             <Box safeArea p="2" w="90%" maxW="290" py="8">
 | 
				
			||||||
 | 
					        <Heading size="lg" color="coolGray.800" _dark={{
 | 
				
			||||||
 | 
					        color: "warmGray.50"
 | 
				
			||||||
 | 
					      }} fontWeight="semibold">
 | 
				
			||||||
 | 
					          Registrar invitado
 | 
				
			||||||
 | 
					        </Heading>
 | 
				
			||||||
 | 
					        <Heading mt="1" color="coolGray.600" _dark={{
 | 
				
			||||||
 | 
					        color: "warmGray.200"
 | 
				
			||||||
 | 
					      }} fontWeight="medium" size="xs">
 | 
				
			||||||
 | 
					         Registre el invitado que desee
 | 
				
			||||||
 | 
					        </Heading>
 | 
				
			||||||
 | 
					        <VStack space={3} mt="5">
 | 
				
			||||||
 | 
					          <FormControl isRequired>
 | 
				
			||||||
 | 
					            <FormControl.Label>Nombre</FormControl.Label>
 | 
				
			||||||
 | 
					            <TextInput style={styles.input} type="text" onChangeText={(value) => setName(value)}/>
 | 
				
			||||||
 | 
					          </FormControl>
 | 
				
			||||||
 | 
					          <FormControl isRequired>
 | 
				
			||||||
 | 
					            <FormControl.Label>Apellido</FormControl.Label>
 | 
				
			||||||
 | 
					            <TextInput style={styles.input} type="text" onChangeText={(value) => setApellido(value)}/>
 | 
				
			||||||
 | 
					          </FormControl>
 | 
				
			||||||
 | 
					          <FormControl isRequired>
 | 
				
			||||||
 | 
					            <FormControl.Label>Identificación</FormControl.Label>
 | 
				
			||||||
 | 
					            <TextInput style={styles.input} type="text" onChangeText={(value) => setDNI(value)}/>
 | 
				
			||||||
 | 
					          </FormControl>
 | 
				
			||||||
 | 
					          <FormControl isRequired>
 | 
				
			||||||
 | 
					            <FormControl.Label>Teléfono</FormControl.Label>
 | 
				
			||||||
 | 
					            <TextInput style={styles.input} type="text" onChangeText={(value) => setPhone(value)} />
 | 
				
			||||||
 | 
					          </FormControl>
 | 
				
			||||||
 | 
					          <Button mt="2" backgroundColor='tertiary.600' onPress={() => saveInvitado()}>
 | 
				
			||||||
 | 
					           Guardar
 | 
				
			||||||
 | 
					          </Button>
 | 
				
			||||||
 | 
					        </VStack>
 | 
				
			||||||
 | 
					      </Box>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      </ScrollView>
 | 
				
			||||||
 | 
					    </Center>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const styles = StyleSheet.create({
 | 
				
			||||||
 | 
					  input: {
 | 
				
			||||||
 | 
					    height: 10,
 | 
				
			||||||
 | 
					    margin: 3,
 | 
				
			||||||
 | 
					    borderWidth: 0.5,
 | 
				
			||||||
 | 
					    padding: 5,
 | 
				
			||||||
 | 
					    flex: 1,
 | 
				
			||||||
 | 
					    paddingTop: 9,
 | 
				
			||||||
 | 
					    paddingRight: 19,
 | 
				
			||||||
 | 
					    paddingBottom: 20,
 | 
				
			||||||
 | 
					    paddingLeft: 0,
 | 
				
			||||||
 | 
					    marginTop: 6,
 | 
				
			||||||
 | 
					    marginBottom: 6,
 | 
				
			||||||
 | 
					    borderRadius: 4
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,177 @@
 | 
				
			||||||
 | 
					import React, {useContext, useEffect, useState} from "react";
 | 
				
			||||||
 | 
					import {
 | 
				
			||||||
 | 
					    Box, 
 | 
				
			||||||
 | 
					    Heading, 
 | 
				
			||||||
 | 
					    VStack, 
 | 
				
			||||||
 | 
					    FormControl,
 | 
				
			||||||
 | 
					    Button,
 | 
				
			||||||
 | 
					    Center, 
 | 
				
			||||||
 | 
					    Select, CheckIcon, ScrollView
 | 
				
			||||||
 | 
					  } from "native-base";
 | 
				
			||||||
 | 
					import { UserContext } from "../context/UserContext";
 | 
				
			||||||
 | 
					import { API } from "../environment/api";
 | 
				
			||||||
 | 
					import {TimePicker} from 'react-native-simple-time-picker';
 | 
				
			||||||
 | 
					import { View, StyleSheet } from "react-native";
 | 
				
			||||||
 | 
					export default function AreaComun({navigation}){
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  const { user } = useContext(UserContext)
 | 
				
			||||||
 | 
					  const [service, setService] = useState("");
 | 
				
			||||||
 | 
					  const [areas, setAreas] = useState([])
 | 
				
			||||||
 | 
					  const [isRequesting, setIsRequesting] = useState(false);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  const [selectedHours, setSelectedHours] = useState(0);
 | 
				
			||||||
 | 
					  const [selectedMinutes, setSelectedMinutes] = useState(0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  const [endSelectedHours, setEndSelectedHours] = useState(0);
 | 
				
			||||||
 | 
					  const [endSelectedMinutes, setEndSelectedMinutes] = useState(0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    useEffect(() => {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      const onRequestReservasData = async () => {
 | 
				
			||||||
 | 
					        setIsRequesting(true);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					        try {
 | 
				
			||||||
 | 
					          const jsonResponse = await fetch(`${API.BASE_URL}/commonArea/allCommonAreas`, {
 | 
				
			||||||
 | 
					            method: "GET",
 | 
				
			||||||
 | 
					            headers: {
 | 
				
			||||||
 | 
					              'Content-Type': 'application/json'
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					          })
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					          const response = await jsonResponse.json();
 | 
				
			||||||
 | 
					          console.log(response.message);
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					          setAreas(response.message);
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					        } catch (error) {
 | 
				
			||||||
 | 
					            console.log("ERROR:" + error);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					        setIsRequesting(false)
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					      onRequestReservasData()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }, [user])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    const postReserva = async() => {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      const data = {
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        "start_time": selectedHours + ":" +selectedMinutes,
 | 
				
			||||||
 | 
					        "finish_time": endSelectedHours + ":" +endSelectedMinutes,
 | 
				
			||||||
 | 
					        "date_entry": "",
 | 
				
			||||||
 | 
					        "user_id" : user._id, 
 | 
				
			||||||
 | 
					        "common_area_id": service
 | 
				
			||||||
 | 
					      
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      console.log(data);
 | 
				
			||||||
 | 
					      // try {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      //   const jsonDataResponse = await fetch(`${API.BASE_URL}/reservation/createReservation`, {
 | 
				
			||||||
 | 
					      //     cache: 'no-cache', 
 | 
				
			||||||
 | 
					      //     method: 'POST', 
 | 
				
			||||||
 | 
					      //     body: JSON.stringify(data), 
 | 
				
			||||||
 | 
					      //     headers: {
 | 
				
			||||||
 | 
					      //       'Content-Type': 'application/json'
 | 
				
			||||||
 | 
					      //     }
 | 
				
			||||||
 | 
					      //   })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      //   const response = await jsonResponse.json();
 | 
				
			||||||
 | 
					      //   console.log(response.message);
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					      // } catch (error) {
 | 
				
			||||||
 | 
					      //   console.log("ERROR:" + error);
 | 
				
			||||||
 | 
					      // }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return (
 | 
				
			||||||
 | 
					        <Center>
 | 
				
			||||||
 | 
					             <Box safeArea p="2" w="90%" maxW="290" py="8">
 | 
				
			||||||
 | 
					        <Heading size="lg" color="coolGray.800" _dark={{
 | 
				
			||||||
 | 
					        color: "warmGray.50"
 | 
				
			||||||
 | 
					      }} fontWeight="semibold">
 | 
				
			||||||
 | 
					          Katoikia
 | 
				
			||||||
 | 
					        </Heading>
 | 
				
			||||||
 | 
					        <Heading mt="1" color="coolGray.600" _dark={{
 | 
				
			||||||
 | 
					        color: "warmGray.200"
 | 
				
			||||||
 | 
					      }} fontWeight="medium" size="xs">
 | 
				
			||||||
 | 
					         Reserve su área común 
 | 
				
			||||||
 | 
					        </Heading>
 | 
				
			||||||
 | 
					        <ScrollView showsVerticalScrollIndicator={false}> 
 | 
				
			||||||
 | 
					        <VStack space={3} mt="5">
 | 
				
			||||||
 | 
					        <FormControl isRequired>
 | 
				
			||||||
 | 
					            <FormControl.Label>Área común</FormControl.Label>
 | 
				
			||||||
 | 
					            <Select selectedValue={service} minWidth="200" accessibilityLabel="Choose Service" placeholder="Elija su área común" _selectedItem={{
 | 
				
			||||||
 | 
					        bg: "teal.600",
 | 
				
			||||||
 | 
					        endIcon: <CheckIcon size="5" />
 | 
				
			||||||
 | 
					      }} mt={1} onValueChange={itemValue => setService(itemValue)}>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        {areas.map(item => (
 | 
				
			||||||
 | 
					          <Select.Item label={item.name} value={item.community_id} />
 | 
				
			||||||
 | 
					        ))}
 | 
				
			||||||
 | 
					          
 | 
				
			||||||
 | 
					        </Select>
 | 
				
			||||||
 | 
					          </FormControl>
 | 
				
			||||||
 | 
					          <FormControl isRequired>
 | 
				
			||||||
 | 
					            <FormControl.Label>Hora de inicio</FormControl.Label>
 | 
				
			||||||
 | 
					            <View  >
 | 
				
			||||||
 | 
					            <TimePicker 
 | 
				
			||||||
 | 
					          selectedHours={selectedHours}
 | 
				
			||||||
 | 
					          selectedMinutes={selectedMinutes}
 | 
				
			||||||
 | 
					          onChange={(hours, minutes) => {
 | 
				
			||||||
 | 
					            setSelectedHours(hours);
 | 
				
			||||||
 | 
					            setSelectedMinutes(minutes);
 | 
				
			||||||
 | 
					          }}/>
 | 
				
			||||||
 | 
					            </View>
 | 
				
			||||||
 | 
					          </FormControl>
 | 
				
			||||||
 | 
					          <FormControl isRequired>
 | 
				
			||||||
 | 
					            <FormControl.Label>Hora de finalización</FormControl.Label>
 | 
				
			||||||
 | 
					            <View  >
 | 
				
			||||||
 | 
					            <TimePicker 
 | 
				
			||||||
 | 
					          selectedHours={selectedHours}
 | 
				
			||||||
 | 
					          //initial Hourse value
 | 
				
			||||||
 | 
					          selectedMinutes={selectedMinutes}
 | 
				
			||||||
 | 
					          //initial Minutes value
 | 
				
			||||||
 | 
					          onChange={(hours, minutes) => {
 | 
				
			||||||
 | 
					            setEndSelectedHours(hours);
 | 
				
			||||||
 | 
					            setEndSelectedMinutes(minutes);
 | 
				
			||||||
 | 
					          }}/>
 | 
				
			||||||
 | 
					            </View>
 | 
				
			||||||
 | 
					           
 | 
				
			||||||
 | 
					          </FormControl>
 | 
				
			||||||
 | 
					         
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					          <Button mt="2" backgroundColor="tertiary.600" onPress={()=> postReserva()}>
 | 
				
			||||||
 | 
					            Reservar
 | 
				
			||||||
 | 
					          </Button>
 | 
				
			||||||
 | 
					          <Button mt="6" colorScheme="error" onPress={() => navigation.navigate('Comunicados')}>
 | 
				
			||||||
 | 
					            Cancelar
 | 
				
			||||||
 | 
					          </Button>
 | 
				
			||||||
 | 
					        </VStack>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        </ScrollView>
 | 
				
			||||||
 | 
					      </Box>
 | 
				
			||||||
 | 
					        </Center>
 | 
				
			||||||
 | 
					       
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					const styles = StyleSheet.create({
 | 
				
			||||||
 | 
					  container: {
 | 
				
			||||||
 | 
					    flex: 1,
 | 
				
			||||||
 | 
					    padding: 10,
 | 
				
			||||||
 | 
					    justifyContent: 'center',
 | 
				
			||||||
 | 
					    alignItems: 'center',
 | 
				
			||||||
 | 
					    height: 40
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
| 
						 | 
					@ -1,57 +0,0 @@
 | 
				
			||||||
import React from "react";
 | 
					 | 
				
			||||||
import { StyleSheet } from "react-native";
 | 
					 | 
				
			||||||
import PropTypes from 'prop-types';
 | 
					 | 
				
			||||||
import { Button } from "galio-framework";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import argonTheme from "../constants/Theme";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
class ArButton extends React.Component {
 | 
					 | 
				
			||||||
  render() {
 | 
					 | 
				
			||||||
    const { small, shadowless, children, color, style, ...props } = this.props;
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
    const colorStyle = color && argonTheme.COLORS[color.toUpperCase()];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    const buttonStyles = [
 | 
					 | 
				
			||||||
      small && styles.smallButton,
 | 
					 | 
				
			||||||
      color && { backgroundColor: colorStyle },
 | 
					 | 
				
			||||||
      !shadowless && styles.shadow,
 | 
					 | 
				
			||||||
      {...style}
 | 
					 | 
				
			||||||
    ];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return (
 | 
					 | 
				
			||||||
      <Button
 | 
					 | 
				
			||||||
        style={buttonStyles}
 | 
					 | 
				
			||||||
        shadowless
 | 
					 | 
				
			||||||
        textStyle={{ fontSize: 12, fontWeight: '700' }}
 | 
					 | 
				
			||||||
        {...props}
 | 
					 | 
				
			||||||
      >
 | 
					 | 
				
			||||||
        {children}
 | 
					 | 
				
			||||||
      </Button>
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ArButton.propTypes = {
 | 
					 | 
				
			||||||
  small: PropTypes.bool,
 | 
					 | 
				
			||||||
  shadowless: PropTypes.bool,
 | 
					 | 
				
			||||||
  color: PropTypes.oneOfType([
 | 
					 | 
				
			||||||
    PropTypes.string,
 | 
					 | 
				
			||||||
    PropTypes.oneOf(['default', 'primary', 'secondary', 'info', 'error', 'success', 'warning'])
 | 
					 | 
				
			||||||
  ])
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const styles = StyleSheet.create({
 | 
					 | 
				
			||||||
  smallButton: {
 | 
					 | 
				
			||||||
    width: 75,
 | 
					 | 
				
			||||||
    height: 28
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  shadow: {
 | 
					 | 
				
			||||||
    shadowColor: 'black',
 | 
					 | 
				
			||||||
    shadowOffset: { width: 0, height: 4 },
 | 
					 | 
				
			||||||
    shadowRadius: 4,
 | 
					 | 
				
			||||||
    shadowOpacity: 0.1,
 | 
					 | 
				
			||||||
    elevation: 2,
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
});
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export default ArButton;
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,98 +0,0 @@
 | 
				
			||||||
import React from 'react';
 | 
					 | 
				
			||||||
import { withNavigation } from '@react-navigation/native';
 | 
					 | 
				
			||||||
import PropTypes from 'prop-types';
 | 
					 | 
				
			||||||
import { StyleSheet, Dimensions, Image, TouchableWithoutFeedback } from 'react-native';
 | 
					 | 
				
			||||||
import { Block, Text, theme } from 'galio-framework';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import { argonTheme } from '../constants';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
class Card extends React.Component {
 | 
					 | 
				
			||||||
  render() {
 | 
					 | 
				
			||||||
    const { navigation, item, horizontal, full, style, ctaColor, imageStyle } = this.props;
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
    const imageStyles = [
 | 
					 | 
				
			||||||
      full ? styles.fullImage : styles.horizontalImage,
 | 
					 | 
				
			||||||
      imageStyle
 | 
					 | 
				
			||||||
    ];
 | 
					 | 
				
			||||||
    const cardContainer = [styles.card, styles.shadow, style];
 | 
					 | 
				
			||||||
    const imgContainer = [styles.imageContainer,
 | 
					 | 
				
			||||||
      horizontal ? styles.horizontalStyles : styles.verticalStyles,
 | 
					 | 
				
			||||||
      styles.shadow
 | 
					 | 
				
			||||||
    ];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return (
 | 
					 | 
				
			||||||
      <Block row={horizontal} card flex style={cardContainer}>
 | 
					 | 
				
			||||||
        <TouchableWithoutFeedback onPress={() => navigation.navigate('Pro')}>
 | 
					 | 
				
			||||||
          <Block flex style={imgContainer}>
 | 
					 | 
				
			||||||
            <Image source={{uri: item.image}} style={imageStyles} />
 | 
					 | 
				
			||||||
          </Block>
 | 
					 | 
				
			||||||
        </TouchableWithoutFeedback>
 | 
					 | 
				
			||||||
        <TouchableWithoutFeedback onPress={() => navigation.navigate('Pro')}>
 | 
					 | 
				
			||||||
          <Block flex space="between" style={styles.cardDescription}>
 | 
					 | 
				
			||||||
            <Text size={14} style={styles.cardTitle}>{item.title}</Text>
 | 
					 | 
				
			||||||
            <Text size={12} muted={!ctaColor} color={ctaColor || argonTheme.COLORS.ACTIVE} bold>{item.cta}</Text>
 | 
					 | 
				
			||||||
          </Block>
 | 
					 | 
				
			||||||
        </TouchableWithoutFeedback>
 | 
					 | 
				
			||||||
      </Block>
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Card.propTypes = {
 | 
					 | 
				
			||||||
  item: PropTypes.object,
 | 
					 | 
				
			||||||
  horizontal: PropTypes.bool,
 | 
					 | 
				
			||||||
  full: PropTypes.bool,
 | 
					 | 
				
			||||||
  ctaColor: PropTypes.string,
 | 
					 | 
				
			||||||
  imageStyle: PropTypes.any,
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const styles = StyleSheet.create({
 | 
					 | 
				
			||||||
  card: {
 | 
					 | 
				
			||||||
    backgroundColor: theme.COLORS.WHITE,
 | 
					 | 
				
			||||||
    marginVertical: theme.SIZES.BASE,
 | 
					 | 
				
			||||||
    borderWidth: 0,
 | 
					 | 
				
			||||||
    minHeight: 114,
 | 
					 | 
				
			||||||
    marginBottom: 16
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  cardTitle: {
 | 
					 | 
				
			||||||
    flex: 1,
 | 
					 | 
				
			||||||
    flexWrap: 'wrap',
 | 
					 | 
				
			||||||
    paddingBottom: 6
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  cardDescription: {
 | 
					 | 
				
			||||||
    padding: theme.SIZES.BASE / 2
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  imageContainer: {
 | 
					 | 
				
			||||||
    borderRadius: 3,
 | 
					 | 
				
			||||||
    elevation: 1,
 | 
					 | 
				
			||||||
    overflow: 'hidden',
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  image: {
 | 
					 | 
				
			||||||
    // borderRadius: 3,
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  horizontalImage: {
 | 
					 | 
				
			||||||
    height: 122,
 | 
					 | 
				
			||||||
    width: 'auto',
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  horizontalStyles: {
 | 
					 | 
				
			||||||
    borderTopRightRadius: 0,
 | 
					 | 
				
			||||||
    borderBottomRightRadius: 0,
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  verticalStyles: {
 | 
					 | 
				
			||||||
    borderBottomRightRadius: 0,
 | 
					 | 
				
			||||||
    borderBottomLeftRadius: 0
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  fullImage: {
 | 
					 | 
				
			||||||
    height: 215
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  shadow: {
 | 
					 | 
				
			||||||
    shadowColor: theme.COLORS.BLACK,
 | 
					 | 
				
			||||||
    shadowOffset: { width: 0, height: 2 },
 | 
					 | 
				
			||||||
    shadowRadius: 4,
 | 
					 | 
				
			||||||
    shadowOpacity: 0.1,
 | 
					 | 
				
			||||||
    elevation: 2,
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
});
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export default withNavigation(Card);
 | 
					 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,51 @@
 | 
				
			||||||
 | 
					import { format } from "date-fns";
 | 
				
			||||||
 | 
					import {
 | 
				
			||||||
 | 
					    Badge,
 | 
				
			||||||
 | 
					    Box, HStack, Pressable,
 | 
				
			||||||
 | 
					    Spacer, Text
 | 
				
			||||||
 | 
					} from "native-base";
 | 
				
			||||||
 | 
					import PropTypes from 'prop-types';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import React from 'react';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export const CommentCard = ({ date, comment }) => {
 | 
				
			||||||
 | 
					    const dateFormated = format(new Date(date), "dd LL yyyy")
 | 
				
			||||||
 | 
					    return (
 | 
				
			||||||
 | 
					        <Pressable
 | 
				
			||||||
 | 
					            rounded="8"
 | 
				
			||||||
 | 
					            overflow="hidden"
 | 
				
			||||||
 | 
					            borderWidth="1"
 | 
				
			||||||
 | 
					            borderColor="coolGray.300"
 | 
				
			||||||
 | 
					            maxW="96"
 | 
				
			||||||
 | 
					            shadow="3"
 | 
				
			||||||
 | 
					            bg="coolGray.100"
 | 
				
			||||||
 | 
					            p="5"
 | 
				
			||||||
 | 
					            marginTop="4"
 | 
				
			||||||
 | 
					        >
 | 
				
			||||||
 | 
					            <Box>
 | 
				
			||||||
 | 
					                <HStack alignItems="center">
 | 
				
			||||||
 | 
					                    <Badge colorScheme="darkBlue" _text={{
 | 
				
			||||||
 | 
					                        color: "white"
 | 
				
			||||||
 | 
					                    }} variant="solid" rounded="4">
 | 
				
			||||||
 | 
					                        Comunicado
 | 
				
			||||||
 | 
					                    </Badge>
 | 
				
			||||||
 | 
					                    <Spacer />
 | 
				
			||||||
 | 
					                    <Text fontSize={10} color="coolGray.800">
 | 
				
			||||||
 | 
					                        {dateFormated}
 | 
				
			||||||
 | 
					                    </Text>
 | 
				
			||||||
 | 
					                </HStack>
 | 
				
			||||||
 | 
					                <Text color="coolGray.800" mt="3" fontWeight="medium" fontSize="xl">
 | 
				
			||||||
 | 
					                    Administrador de Comunidad
 | 
				
			||||||
 | 
					                </Text>
 | 
				
			||||||
 | 
					                <Text mt="2" fontSize="sm" color="coolGray.700">
 | 
				
			||||||
 | 
					                    {comment}
 | 
				
			||||||
 | 
					                </Text>
 | 
				
			||||||
 | 
					            </Box>
 | 
				
			||||||
 | 
					        </Pressable>
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CommentCard.propTypes = {
 | 
				
			||||||
 | 
					    date: PropTypes.string.isRequired,
 | 
				
			||||||
 | 
					    comment: PropTypes.string.isRequired,
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -1,130 +0,0 @@
 | 
				
			||||||
import React from "react";
 | 
					 | 
				
			||||||
import { StyleSheet, TouchableOpacity, Linking } from "react-native";
 | 
					 | 
				
			||||||
import { Block, Text, theme } from "galio-framework";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import Icon from "./Icon";
 | 
					 | 
				
			||||||
import argonTheme from "../constants/Theme";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
class DrawerItem extends React.Component {
 | 
					 | 
				
			||||||
  renderIcon = () => {
 | 
					 | 
				
			||||||
    const { title, focused } = this.props;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    switch (title) {
 | 
					 | 
				
			||||||
      case "Home":
 | 
					 | 
				
			||||||
        return (
 | 
					 | 
				
			||||||
          <Icon
 | 
					 | 
				
			||||||
            name="shop"
 | 
					 | 
				
			||||||
            family="ArgonExtra"
 | 
					 | 
				
			||||||
            size={14}
 | 
					 | 
				
			||||||
            color={focused ? "white" : argonTheme.COLORS.PRIMARY}
 | 
					 | 
				
			||||||
          />
 | 
					 | 
				
			||||||
        );
 | 
					 | 
				
			||||||
      case "Elements":
 | 
					 | 
				
			||||||
        return (
 | 
					 | 
				
			||||||
          <Icon
 | 
					 | 
				
			||||||
            name="map-big"
 | 
					 | 
				
			||||||
            family="ArgonExtra"
 | 
					 | 
				
			||||||
            size={14}
 | 
					 | 
				
			||||||
            color={focused ? "white" : argonTheme.COLORS.ERROR}
 | 
					 | 
				
			||||||
          />
 | 
					 | 
				
			||||||
        );
 | 
					 | 
				
			||||||
      case "Articles":
 | 
					 | 
				
			||||||
        return (
 | 
					 | 
				
			||||||
          <Icon
 | 
					 | 
				
			||||||
            name="spaceship"
 | 
					 | 
				
			||||||
            family="ArgonExtra"
 | 
					 | 
				
			||||||
            size={14}
 | 
					 | 
				
			||||||
            color={focused ? "white" : argonTheme.COLORS.PRIMARY}
 | 
					 | 
				
			||||||
          />
 | 
					 | 
				
			||||||
        );
 | 
					 | 
				
			||||||
      case "Profile":
 | 
					 | 
				
			||||||
        return (
 | 
					 | 
				
			||||||
          <Icon
 | 
					 | 
				
			||||||
            name="chart-pie-35"
 | 
					 | 
				
			||||||
            family="ArgonExtra"
 | 
					 | 
				
			||||||
            size={14}
 | 
					 | 
				
			||||||
            color={focused ? "white" : argonTheme.COLORS.WARNING}
 | 
					 | 
				
			||||||
          />
 | 
					 | 
				
			||||||
        );
 | 
					 | 
				
			||||||
      case "Account":
 | 
					 | 
				
			||||||
        return (
 | 
					 | 
				
			||||||
          <Icon
 | 
					 | 
				
			||||||
            name="calendar-date"
 | 
					 | 
				
			||||||
            family="ArgonExtra"
 | 
					 | 
				
			||||||
            size={14}
 | 
					 | 
				
			||||||
            color={focused ? "white" : argonTheme.COLORS.INFO}
 | 
					 | 
				
			||||||
          />
 | 
					 | 
				
			||||||
        );
 | 
					 | 
				
			||||||
      case "Getting Started":
 | 
					 | 
				
			||||||
        return (<Icon
 | 
					 | 
				
			||||||
          name="spaceship"
 | 
					 | 
				
			||||||
          family="ArgonExtra"
 | 
					 | 
				
			||||||
          size={14}
 | 
					 | 
				
			||||||
          color={focused ? "white" : "rgba(0,0,0,0.5)"}
 | 
					 | 
				
			||||||
        />);
 | 
					 | 
				
			||||||
      case "Log out":
 | 
					 | 
				
			||||||
        return <Icon />;
 | 
					 | 
				
			||||||
      default:
 | 
					 | 
				
			||||||
        return null;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  render() {
 | 
					 | 
				
			||||||
    const { focused, title, navigation } = this.props;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    const containerStyles = [
 | 
					 | 
				
			||||||
      styles.defaultStyle,
 | 
					 | 
				
			||||||
      focused ? [styles.activeStyle, styles.shadow] : null
 | 
					 | 
				
			||||||
    ];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return (
 | 
					 | 
				
			||||||
      <TouchableOpacity
 | 
					 | 
				
			||||||
        style={{ height: 60 }}
 | 
					 | 
				
			||||||
        onPress={() =>
 | 
					 | 
				
			||||||
          title == "Getting Started"
 | 
					 | 
				
			||||||
            ? Linking.openURL(
 | 
					 | 
				
			||||||
                "https://demos.creative-tim.com/argon-pro-react-native/docs/"
 | 
					 | 
				
			||||||
              ).catch(err => console.error("An error occurred", err))
 | 
					 | 
				
			||||||
            : navigation.navigate(title)
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
      >
 | 
					 | 
				
			||||||
        <Block flex row style={containerStyles}>
 | 
					 | 
				
			||||||
          <Block middle flex={0.1} style={{ marginRight: 5 }}>
 | 
					 | 
				
			||||||
            {this.renderIcon()}
 | 
					 | 
				
			||||||
          </Block>
 | 
					 | 
				
			||||||
          <Block row center flex={0.9}>
 | 
					 | 
				
			||||||
            <Text
 | 
					 | 
				
			||||||
              size={15}
 | 
					 | 
				
			||||||
              bold={focused ? true : false}
 | 
					 | 
				
			||||||
              color={focused ? "white" : "rgba(0,0,0,0.5)"}
 | 
					 | 
				
			||||||
            >
 | 
					 | 
				
			||||||
              {title}
 | 
					 | 
				
			||||||
            </Text>
 | 
					 | 
				
			||||||
          </Block>
 | 
					 | 
				
			||||||
        </Block>
 | 
					 | 
				
			||||||
      </TouchableOpacity>
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const styles = StyleSheet.create({
 | 
					 | 
				
			||||||
  defaultStyle: {
 | 
					 | 
				
			||||||
    paddingVertical: 16,
 | 
					 | 
				
			||||||
    paddingHorizontal: 16
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  activeStyle: {
 | 
					 | 
				
			||||||
    backgroundColor: argonTheme.COLORS.ACTIVE,
 | 
					 | 
				
			||||||
    borderRadius: 4
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  shadow: {
 | 
					 | 
				
			||||||
    shadowColor: theme.COLORS.BLACK,
 | 
					 | 
				
			||||||
    shadowOffset: {
 | 
					 | 
				
			||||||
      width: 0,
 | 
					 | 
				
			||||||
      height: 2
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    shadowRadius: 8,
 | 
					 | 
				
			||||||
    shadowOpacity: 0.1
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
});
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export default DrawerItem;
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,281 +0,0 @@
 | 
				
			||||||
import React from 'react';
 | 
					 | 
				
			||||||
import { withNavigation } from '@react-navigation/native';
 | 
					 | 
				
			||||||
import { TouchableOpacity, StyleSheet, Platform, Dimensions } from 'react-native';
 | 
					 | 
				
			||||||
import { Button, Block, NavBar, Text, theme } from 'galio-framework';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import Icon from './Icon';
 | 
					 | 
				
			||||||
import Input from './Input';
 | 
					 | 
				
			||||||
import Tabs from './Tabs';
 | 
					 | 
				
			||||||
import argonTheme from '../constants/Theme';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const { height, width } = Dimensions.get('window');
 | 
					 | 
				
			||||||
const iPhoneX = () => Platform.OS === 'ios' && (height === 812 || width === 812 || height === 896 || width === 896);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const BellButton = ({isWhite, style, navigation}) => (
 | 
					 | 
				
			||||||
  <TouchableOpacity style={[styles.button, style]} onPress={() => navigation.navigate('Pro')}>
 | 
					 | 
				
			||||||
    <Icon
 | 
					 | 
				
			||||||
      family="ArgonExtra"
 | 
					 | 
				
			||||||
      size={16}
 | 
					 | 
				
			||||||
      name="bell"
 | 
					 | 
				
			||||||
      color={argonTheme.COLORS[isWhite ? 'WHITE' : 'ICON']}
 | 
					 | 
				
			||||||
    />
 | 
					 | 
				
			||||||
    <Block middle style={styles.notify} />
 | 
					 | 
				
			||||||
  </TouchableOpacity>
 | 
					 | 
				
			||||||
);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const BasketButton = ({isWhite, style, navigation}) => (
 | 
					 | 
				
			||||||
  <TouchableOpacity style={[styles.button, style]} onPress={() => navigation.navigate('Pro')}>
 | 
					 | 
				
			||||||
    <Icon
 | 
					 | 
				
			||||||
      family="ArgonExtra"
 | 
					 | 
				
			||||||
      size={16}
 | 
					 | 
				
			||||||
      name="basket"
 | 
					 | 
				
			||||||
      color={argonTheme.COLORS[isWhite ? 'WHITE' : 'ICON']}
 | 
					 | 
				
			||||||
    />
 | 
					 | 
				
			||||||
  </TouchableOpacity>
 | 
					 | 
				
			||||||
);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const SearchButton = ({isWhite, style, navigation}) => (
 | 
					 | 
				
			||||||
  <TouchableOpacity style={[styles.button, style]} onPress={() => navigation.navigate('Pro')}>
 | 
					 | 
				
			||||||
    <Icon
 | 
					 | 
				
			||||||
      size={16}
 | 
					 | 
				
			||||||
      family="Galio"
 | 
					 | 
				
			||||||
      name="search-zoom-in"
 | 
					 | 
				
			||||||
      color={theme.COLORS[isWhite ? 'WHITE' : 'ICON']}
 | 
					 | 
				
			||||||
    />
 | 
					 | 
				
			||||||
  </TouchableOpacity>
 | 
					 | 
				
			||||||
);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
class Header extends React.Component {
 | 
					 | 
				
			||||||
  handleLeftPress = () => {
 | 
					 | 
				
			||||||
    const { back, navigation } = this.props;
 | 
					 | 
				
			||||||
    return (back ? navigation.goBack() : navigation.openDrawer());
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  renderRight = () => {
 | 
					 | 
				
			||||||
    const { white, title, navigation } = this.props;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (title === 'Title') {
 | 
					 | 
				
			||||||
      return [
 | 
					 | 
				
			||||||
        <BellButton key='chat-title' navigation={navigation} isWhite={white} />,
 | 
					 | 
				
			||||||
        <BasketButton key='basket-title' navigation={navigation} isWhite={white} />
 | 
					 | 
				
			||||||
      ]
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    switch (title) {
 | 
					 | 
				
			||||||
      case 'Home':
 | 
					 | 
				
			||||||
        return ([
 | 
					 | 
				
			||||||
          <BellButton key='chat-home' navigation={navigation} isWhite={white} />,
 | 
					 | 
				
			||||||
          <BasketButton key='basket-home' navigation={navigation} isWhite={white} />
 | 
					 | 
				
			||||||
        ]);
 | 
					 | 
				
			||||||
      case 'Deals':
 | 
					 | 
				
			||||||
        return ([
 | 
					 | 
				
			||||||
          <BellButton key='chat-categories' navigation={navigation} />,
 | 
					 | 
				
			||||||
          <BasketButton key='basket-categories' navigation={navigation} />
 | 
					 | 
				
			||||||
        ]);
 | 
					 | 
				
			||||||
      case 'Categories':
 | 
					 | 
				
			||||||
        return ([
 | 
					 | 
				
			||||||
          <BellButton key='chat-categories' navigation={navigation} isWhite={white} />,
 | 
					 | 
				
			||||||
          <BasketButton key='basket-categories' navigation={navigation} isWhite={white} />
 | 
					 | 
				
			||||||
        ]);
 | 
					 | 
				
			||||||
      case 'Category':
 | 
					 | 
				
			||||||
        return ([
 | 
					 | 
				
			||||||
          <BellButton key='chat-deals' navigation={navigation} isWhite={white} />,
 | 
					 | 
				
			||||||
          <BasketButton key='basket-deals' navigation={navigation} isWhite={white} />
 | 
					 | 
				
			||||||
        ]);
 | 
					 | 
				
			||||||
      case 'Profile':
 | 
					 | 
				
			||||||
        return ([
 | 
					 | 
				
			||||||
          <BellButton key='chat-profile' navigation={navigation} isWhite={white} />,
 | 
					 | 
				
			||||||
          <BasketButton key='basket-deals' navigation={navigation} isWhite={white} />
 | 
					 | 
				
			||||||
        ]);
 | 
					 | 
				
			||||||
      case 'Product':
 | 
					 | 
				
			||||||
        return ([
 | 
					 | 
				
			||||||
          <SearchButton key='search-product' navigation={navigation} isWhite={white} />,
 | 
					 | 
				
			||||||
          <BasketButton key='basket-product' navigation={navigation} isWhite={white} />
 | 
					 | 
				
			||||||
        ]);
 | 
					 | 
				
			||||||
      case 'Search':
 | 
					 | 
				
			||||||
        return ([
 | 
					 | 
				
			||||||
          <BellButton key='chat-search' navigation={navigation} isWhite={white} />,
 | 
					 | 
				
			||||||
          <BasketButton key='basket-search' navigation={navigation} isWhite={white} />
 | 
					 | 
				
			||||||
        ]);
 | 
					 | 
				
			||||||
      case 'Settings':
 | 
					 | 
				
			||||||
        return ([
 | 
					 | 
				
			||||||
          <BellButton key='chat-search' navigation={navigation} isWhite={white} />,
 | 
					 | 
				
			||||||
          <BasketButton key='basket-search' navigation={navigation} isWhite={white} />
 | 
					 | 
				
			||||||
        ]);
 | 
					 | 
				
			||||||
      default:
 | 
					 | 
				
			||||||
        break;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  renderSearch = () => {
 | 
					 | 
				
			||||||
    const { navigation } = this.props;
 | 
					 | 
				
			||||||
    return (
 | 
					 | 
				
			||||||
      <Input
 | 
					 | 
				
			||||||
        right
 | 
					 | 
				
			||||||
        color="black"
 | 
					 | 
				
			||||||
        style={styles.search}
 | 
					 | 
				
			||||||
        placeholder="What are you looking for?"
 | 
					 | 
				
			||||||
        placeholderTextColor={'#8898AA'}
 | 
					 | 
				
			||||||
        onFocus={() => navigation.navigate('Pro')}
 | 
					 | 
				
			||||||
        iconContent={<Icon size={16} color={theme.COLORS.MUTED} name="search-zoom-in" family="ArgonExtra" />}
 | 
					 | 
				
			||||||
      />
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  renderOptions = () => {
 | 
					 | 
				
			||||||
    const { navigation, optionLeft, optionRight } = this.props;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return (
 | 
					 | 
				
			||||||
      <Block row style={styles.options}>
 | 
					 | 
				
			||||||
        <Button shadowless style={[styles.tab, styles.divider]} onPress={() => navigation.navigate('Pro')}>
 | 
					 | 
				
			||||||
          <Block row middle>
 | 
					 | 
				
			||||||
            <Icon name="diamond" family="ArgonExtra" style={{ paddingRight: 8 }} color={argonTheme.COLORS.ICON} />
 | 
					 | 
				
			||||||
            <Text size={16} style={styles.tabTitle}>{optionLeft || 'Beauty'}</Text>
 | 
					 | 
				
			||||||
          </Block>
 | 
					 | 
				
			||||||
        </Button>
 | 
					 | 
				
			||||||
        <Button shadowless style={styles.tab} onPress={() => navigation.navigate('Pro')}>
 | 
					 | 
				
			||||||
          <Block row middle>
 | 
					 | 
				
			||||||
            <Icon size={16} name="bag-17" family="ArgonExtra" style={{ paddingRight: 8 }} color={argonTheme.COLORS.ICON}/>
 | 
					 | 
				
			||||||
            <Text size={16} style={styles.tabTitle}>{optionRight || 'Fashion'}</Text>
 | 
					 | 
				
			||||||
          </Block>
 | 
					 | 
				
			||||||
        </Button>
 | 
					 | 
				
			||||||
      </Block>
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  renderTabs = () => {
 | 
					 | 
				
			||||||
    const { tabs, tabIndex, navigation } = this.props;
 | 
					 | 
				
			||||||
    const defaultTab = tabs && tabs[0] && tabs[0].id;
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
    if (!tabs) return null;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return (
 | 
					 | 
				
			||||||
      <Tabs
 | 
					 | 
				
			||||||
        data={tabs || []}
 | 
					 | 
				
			||||||
        initialIndex={tabIndex || defaultTab}
 | 
					 | 
				
			||||||
        onChange={id => navigation.setParams({ tabId: id })} />
 | 
					 | 
				
			||||||
    )
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  renderHeader = () => {
 | 
					 | 
				
			||||||
    const { search, options, tabs } = this.props;
 | 
					 | 
				
			||||||
    if (search || tabs || options) {
 | 
					 | 
				
			||||||
      return (
 | 
					 | 
				
			||||||
        <Block center>
 | 
					 | 
				
			||||||
          {search ? this.renderSearch() : null}
 | 
					 | 
				
			||||||
          {options ? this.renderOptions() : null}
 | 
					 | 
				
			||||||
          {tabs ? this.renderTabs() : null}
 | 
					 | 
				
			||||||
        </Block>
 | 
					 | 
				
			||||||
      );
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  render() {
 | 
					 | 
				
			||||||
    const { back, title, white, transparent, bgColor, iconColor, titleColor, navigation, ...props } = this.props;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    const noShadow = ['Search', 'Categories', 'Deals', 'Pro', 'Profile'].includes(title);
 | 
					 | 
				
			||||||
    const headerStyles = [
 | 
					 | 
				
			||||||
      !noShadow ? styles.shadow : null,
 | 
					 | 
				
			||||||
      transparent ? { backgroundColor: 'rgba(0,0,0,0)' } : null,
 | 
					 | 
				
			||||||
    ];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    const navbarStyles = [
 | 
					 | 
				
			||||||
      styles.navbar,
 | 
					 | 
				
			||||||
      bgColor && { backgroundColor: bgColor }
 | 
					 | 
				
			||||||
    ];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return (
 | 
					 | 
				
			||||||
      <Block style={headerStyles}>
 | 
					 | 
				
			||||||
        <NavBar
 | 
					 | 
				
			||||||
          back={false}
 | 
					 | 
				
			||||||
          title={title}
 | 
					 | 
				
			||||||
          style={navbarStyles}
 | 
					 | 
				
			||||||
          transparent={transparent}
 | 
					 | 
				
			||||||
          right={this.renderRight()}
 | 
					 | 
				
			||||||
          rightStyle={{ alignItems: 'center' }}
 | 
					 | 
				
			||||||
          left={
 | 
					 | 
				
			||||||
            <Icon 
 | 
					 | 
				
			||||||
              name={back ? 'chevron-left' : "menu"} family="entypo" 
 | 
					 | 
				
			||||||
              size={20} onPress={this.handleLeftPress} 
 | 
					 | 
				
			||||||
              color={iconColor || (white ? argonTheme.COLORS.WHITE : argonTheme.COLORS.ICON)}
 | 
					 | 
				
			||||||
              style={{ marginTop: 2 }}
 | 
					 | 
				
			||||||
            />
 | 
					 | 
				
			||||||
              
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
          leftStyle={{ paddingVertical: 12, flex: 0.2 }}
 | 
					 | 
				
			||||||
          titleStyle={[
 | 
					 | 
				
			||||||
            styles.title,
 | 
					 | 
				
			||||||
            { color: argonTheme.COLORS[white ? 'WHITE' : 'HEADER'] },
 | 
					 | 
				
			||||||
            titleColor && { color: titleColor }
 | 
					 | 
				
			||||||
          ]}
 | 
					 | 
				
			||||||
          {...props}
 | 
					 | 
				
			||||||
        />
 | 
					 | 
				
			||||||
        {this.renderHeader()}
 | 
					 | 
				
			||||||
      </Block>
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const styles = StyleSheet.create({
 | 
					 | 
				
			||||||
  button: {
 | 
					 | 
				
			||||||
    padding: 12,
 | 
					 | 
				
			||||||
    position: 'relative',
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  title: {
 | 
					 | 
				
			||||||
    width: '100%',
 | 
					 | 
				
			||||||
    fontSize: 16,
 | 
					 | 
				
			||||||
    fontWeight: 'bold',
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  navbar: {
 | 
					 | 
				
			||||||
    paddingVertical: 0,
 | 
					 | 
				
			||||||
    paddingBottom: theme.SIZES.BASE * 1.5,
 | 
					 | 
				
			||||||
    paddingTop: iPhoneX ? theme.SIZES.BASE * 4 : theme.SIZES.BASE,
 | 
					 | 
				
			||||||
    zIndex: 5,
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  shadow: {
 | 
					 | 
				
			||||||
    backgroundColor: theme.COLORS.WHITE,
 | 
					 | 
				
			||||||
    shadowColor: 'black',
 | 
					 | 
				
			||||||
    shadowOffset: { width: 0, height: 2 },
 | 
					 | 
				
			||||||
    shadowRadius: 6,
 | 
					 | 
				
			||||||
    shadowOpacity: 0.2,
 | 
					 | 
				
			||||||
    elevation: 3,
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  notify: {
 | 
					 | 
				
			||||||
    backgroundColor: argonTheme.COLORS.LABEL,
 | 
					 | 
				
			||||||
    borderRadius: 4,
 | 
					 | 
				
			||||||
    height: theme.SIZES.BASE / 2,
 | 
					 | 
				
			||||||
    width: theme.SIZES.BASE / 2,
 | 
					 | 
				
			||||||
    position: 'absolute',
 | 
					 | 
				
			||||||
    top: 9,
 | 
					 | 
				
			||||||
    right: 12,
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  header: {
 | 
					 | 
				
			||||||
    backgroundColor: theme.COLORS.WHITE,
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  divider: {
 | 
					 | 
				
			||||||
    borderRightWidth: 0.3,
 | 
					 | 
				
			||||||
    borderRightColor: theme.COLORS.ICON,
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  search: {
 | 
					 | 
				
			||||||
    height: 48,
 | 
					 | 
				
			||||||
    width: width - 32,
 | 
					 | 
				
			||||||
    marginHorizontal: 16,
 | 
					 | 
				
			||||||
    borderWidth: 1,
 | 
					 | 
				
			||||||
    borderRadius: 3,
 | 
					 | 
				
			||||||
    borderColor: argonTheme.COLORS.BORDER
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  options: {
 | 
					 | 
				
			||||||
    marginBottom: 24,
 | 
					 | 
				
			||||||
    marginTop: 10,
 | 
					 | 
				
			||||||
    elevation: 4,
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  tab: {
 | 
					 | 
				
			||||||
    backgroundColor: theme.COLORS.TRANSPARENT,
 | 
					 | 
				
			||||||
    width: width * 0.35,
 | 
					 | 
				
			||||||
    borderRadius: 0,
 | 
					 | 
				
			||||||
    borderWidth: 0,
 | 
					 | 
				
			||||||
    height: 24,
 | 
					 | 
				
			||||||
    elevation: 0,
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  tabTitle: {
 | 
					 | 
				
			||||||
    lineHeight: 19,
 | 
					 | 
				
			||||||
    fontWeight: '400',
 | 
					 | 
				
			||||||
    color: argonTheme.COLORS.HEADER
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
});
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export default withNavigation(Header);
 | 
					 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,67 @@
 | 
				
			||||||
 | 
					import{Box, ScrollView} from "native-base";
 | 
				
			||||||
 | 
					import React, { useContext, useEffect, useState } from "react";
 | 
				
			||||||
 | 
					import { UserContext } from "../context/UserContext";
 | 
				
			||||||
 | 
					import { API } from "../environment/api";
 | 
				
			||||||
 | 
					import { CommentCard } from "./CommentCard";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default function Home() {
 | 
				
			||||||
 | 
					  const { user } = useContext(UserContext)
 | 
				
			||||||
 | 
					  const [isRequesting, setIsRequesting] = useState(false);
 | 
				
			||||||
 | 
					  const [comments, setComments] = useState([]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  useEffect(() => {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    console.log(user);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    const onRequestCommentsData = async () => {
 | 
				
			||||||
 | 
					      setIsRequesting(true);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      try {
 | 
				
			||||||
 | 
					        const jsonResponse = await fetch(`${API.BASE_URL}/post/allComments`, {
 | 
				
			||||||
 | 
					          method: "GET",
 | 
				
			||||||
 | 
					          headers: {
 | 
				
			||||||
 | 
					            'Content-Type': 'application/json'
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        const response = await jsonResponse.json();
 | 
				
			||||||
 | 
					        // console.log(response);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        setComments(response.message);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      } catch (error) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      setIsRequesting(false)
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    onRequestCommentsData()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  }, [user])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  return (
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <Box alignItems="center">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      <ScrollView width='100%' h='550' ml='1' _contentContainerStyle={{
 | 
				
			||||||
 | 
					        px: "20px",
 | 
				
			||||||
 | 
					        mb: "4",
 | 
				
			||||||
 | 
					        minW: "72"
 | 
				
			||||||
 | 
					      }}>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          comments.map(item => (
 | 
				
			||||||
 | 
					            <CommentCard
 | 
				
			||||||
 | 
					              key={item._id}
 | 
				
			||||||
 | 
					              comment={item.comment}
 | 
				
			||||||
 | 
					              date={item.date_entry}
 | 
				
			||||||
 | 
					            />
 | 
				
			||||||
 | 
					          ))
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      </ScrollView>
 | 
				
			||||||
 | 
					    </Box>
 | 
				
			||||||
 | 
					  )
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -1,34 +0,0 @@
 | 
				
			||||||
import React from 'react';
 | 
					 | 
				
			||||||
import * as Font from 'expo-font';
 | 
					 | 
				
			||||||
import { createIconSetFromIcoMoon } from '@expo/vector-icons';
 | 
					 | 
				
			||||||
import { Icon } from 'galio-framework';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import argonConfig from '../assets/config/argon.json';
 | 
					 | 
				
			||||||
const ArgonExtra = require('../assets/font/argon.ttf');
 | 
					 | 
				
			||||||
const IconArgonExtra = createIconSetFromIcoMoon(argonConfig, 'ArgonExtra');
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
class IconExtra extends React.Component {
 | 
					 | 
				
			||||||
  state = {
 | 
					 | 
				
			||||||
    fontLoaded: false,
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  async componentDidMount() {
 | 
					 | 
				
			||||||
    await Font.loadAsync({ ArgonExtra: ArgonExtra });
 | 
					 | 
				
			||||||
    this.setState({ fontLoaded: true });
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  render() {
 | 
					 | 
				
			||||||
    const { name, family, ...rest } = this.props;
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
    if (name && family && this.state.fontLoaded) {
 | 
					 | 
				
			||||||
      if (family === 'ArgonExtra') {
 | 
					 | 
				
			||||||
        return <IconArgonExtra name={name} family={family} {...rest} />;
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
      return <Icon name={name} family={family} {...rest} />;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return null;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export default IconExtra;
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,76 +0,0 @@
 | 
				
			||||||
import React from "react";
 | 
					 | 
				
			||||||
import { StyleSheet } from "react-native";
 | 
					 | 
				
			||||||
import PropTypes from 'prop-types';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import { Input } from "galio-framework";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import Icon from './Icon';
 | 
					 | 
				
			||||||
import { argonTheme } from "../constants";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
class ArInput extends React.Component {
 | 
					 | 
				
			||||||
  render() {
 | 
					 | 
				
			||||||
    const { shadowless, success, error } = this.props;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    const inputStyles = [
 | 
					 | 
				
			||||||
      styles.input,
 | 
					 | 
				
			||||||
      !shadowless && styles.shadow,
 | 
					 | 
				
			||||||
      success && styles.success,
 | 
					 | 
				
			||||||
      error && styles.error,
 | 
					 | 
				
			||||||
      {...this.props.style}
 | 
					 | 
				
			||||||
    ];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return (
 | 
					 | 
				
			||||||
      <Input
 | 
					 | 
				
			||||||
        placeholder="write something here"
 | 
					 | 
				
			||||||
        placeholderTextColor={argonTheme.COLORS.MUTED}
 | 
					 | 
				
			||||||
        style={inputStyles}
 | 
					 | 
				
			||||||
        color={argonTheme.COLORS.HEADER}
 | 
					 | 
				
			||||||
        iconContent={
 | 
					 | 
				
			||||||
          <Icon
 | 
					 | 
				
			||||||
            size={14}
 | 
					 | 
				
			||||||
            color={argonTheme.COLORS.ICON}
 | 
					 | 
				
			||||||
            name="link"
 | 
					 | 
				
			||||||
            family="AntDesign"
 | 
					 | 
				
			||||||
          />
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        {...this.props}
 | 
					 | 
				
			||||||
      />
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ArInput.defaultProps = {
 | 
					 | 
				
			||||||
  shadowless: false,
 | 
					 | 
				
			||||||
  success: false,
 | 
					 | 
				
			||||||
  error: false
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ArInput.propTypes = {
 | 
					 | 
				
			||||||
  shadowless: PropTypes.bool,
 | 
					 | 
				
			||||||
  success: PropTypes.bool,
 | 
					 | 
				
			||||||
  error: PropTypes.bool
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const styles = StyleSheet.create({
 | 
					 | 
				
			||||||
  input: {
 | 
					 | 
				
			||||||
    borderRadius: 4,
 | 
					 | 
				
			||||||
    borderColor: argonTheme.COLORS.BORDER,
 | 
					 | 
				
			||||||
    height: 44,
 | 
					 | 
				
			||||||
    backgroundColor: '#FFFFFF'
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  success: {
 | 
					 | 
				
			||||||
    borderColor: argonTheme.COLORS.INPUT_SUCCESS,
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  error: {
 | 
					 | 
				
			||||||
    borderColor: argonTheme.COLORS.INPUT_ERROR,
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  shadow: {
 | 
					 | 
				
			||||||
    shadowColor: argonTheme.COLORS.BLACK,
 | 
					 | 
				
			||||||
    shadowOffset: { width: 0, height: 1 },
 | 
					 | 
				
			||||||
    shadowRadius: 2,
 | 
					 | 
				
			||||||
    shadowOpacity: 0.05,
 | 
					 | 
				
			||||||
    elevation: 2,
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
});
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export default ArInput;
 | 
					 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,97 @@
 | 
				
			||||||
 | 
					import React, { useContext, useEffect, useState } from "react";
 | 
				
			||||||
 | 
					import { MaterialCommunityIcons } from '@expo/vector-icons';
 | 
				
			||||||
 | 
					import { UserContext } from "../context/UserContext";
 | 
				
			||||||
 | 
					import { API } from "../environment/api";
 | 
				
			||||||
 | 
					import {
 | 
				
			||||||
 | 
					  Box, Button,
 | 
				
			||||||
 | 
					  Center, FormControl, Heading, ScrollView, VStack,FlatList, HStack,Avatar,Spacer,Text
 | 
				
			||||||
 | 
					} from "native-base";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default function Invitados({navigation}) {
 | 
				
			||||||
 | 
					  const [isRequesting, setIsRequesting] = useState(false);
 | 
				
			||||||
 | 
					  const [invitados, setInvitados] = useState([]);
 | 
				
			||||||
 | 
					  const { user } = useContext(UserContext);
 | 
				
			||||||
 | 
					  const id = user._id;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  useEffect(() => {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    const onRequestInvitadosData = async () => {
 | 
				
			||||||
 | 
					      setIsRequesting(true);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      try {
 | 
				
			||||||
 | 
					        const jsonResponse = await fetch(`${API.BASE_URL}/guest/findGuestUser/`+`${id}`, {
 | 
				
			||||||
 | 
					          method: "GET",
 | 
				
			||||||
 | 
					          headers: {
 | 
				
			||||||
 | 
					            'Content-Type': 'application/json'
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        const response = await jsonResponse.json();
 | 
				
			||||||
 | 
					        //console.log(response);
 | 
				
			||||||
 | 
					        setInvitados(response.message);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      } catch (error) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      setIsRequesting(false)
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    onRequestInvitadosData()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  return (
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					       <Box>
 | 
				
			||||||
 | 
					      <Heading fontSize="xl" p="4" pb="3">
 | 
				
			||||||
 | 
					        Lista de invitados
 | 
				
			||||||
 | 
					      </Heading>
 | 
				
			||||||
 | 
					      <FlatList data={invitados} renderItem={({
 | 
				
			||||||
 | 
					      item
 | 
				
			||||||
 | 
					    }) => <Box key={item._id} borderBottomWidth="1" _dark={{
 | 
				
			||||||
 | 
					      borderColor: "gray.600"
 | 
				
			||||||
 | 
					    }} borderColor="coolGray.200" pl="4" pr="5" py="2">
 | 
				
			||||||
 | 
					            <HStack space={3} justifyContent="space-between" >
 | 
				
			||||||
 | 
					            <MaterialCommunityIcons name="account" size={48} color="#D7A86E" />
 | 
				
			||||||
 | 
					              <VStack>
 | 
				
			||||||
 | 
					                <Text _dark={{
 | 
				
			||||||
 | 
					            color: "warmGray.50"
 | 
				
			||||||
 | 
					          }} color="coolGray.800" bold>
 | 
				
			||||||
 | 
					                  {item.name+" "+item.last_name}
 | 
				
			||||||
 | 
					                </Text>
 | 
				
			||||||
 | 
					                <Text color="coolGray.600" _dark={{
 | 
				
			||||||
 | 
					            color: "warmGray.200"
 | 
				
			||||||
 | 
					          }}>
 | 
				
			||||||
 | 
					                  {item.dni}
 | 
				
			||||||
 | 
					                </Text>
 | 
				
			||||||
 | 
					                <Text color="coolGray.600" _dark={{
 | 
				
			||||||
 | 
					            color: "warmGray.200"
 | 
				
			||||||
 | 
					          }}>
 | 
				
			||||||
 | 
					                  {item.phone}
 | 
				
			||||||
 | 
					                </Text>
 | 
				
			||||||
 | 
					              </VStack>
 | 
				
			||||||
 | 
					              <Spacer />
 | 
				
			||||||
 | 
					              <Text fontSize="xs" _dark={{
 | 
				
			||||||
 | 
					          color: "warmGray.50"
 | 
				
			||||||
 | 
					        }} color="coolGray.800" alignSelf="flex-start">
 | 
				
			||||||
 | 
					                {item.number_plate}
 | 
				
			||||||
 | 
					              </Text>
 | 
				
			||||||
 | 
					            </HStack>
 | 
				
			||||||
 | 
					          </Box>} keyExtractor={item => item.id} />
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          <Button width='200'  mt="4" ml='85' backgroundColor='tertiary.600' onPress={() => navigation.navigate('invitado')}>
 | 
				
			||||||
 | 
					        Agregar invitado
 | 
				
			||||||
 | 
					       </Button>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    </Box>
 | 
				
			||||||
 | 
					      
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,201 @@
 | 
				
			||||||
 | 
					import React, { useContext, useState } from "react";
 | 
				
			||||||
 | 
					import Cookies from 'universal-cookie';
 | 
				
			||||||
 | 
					import {
 | 
				
			||||||
 | 
					  Text,
 | 
				
			||||||
 | 
					  Link,
 | 
				
			||||||
 | 
					  Center,
 | 
				
			||||||
 | 
					  Heading,
 | 
				
			||||||
 | 
					  VStack,
 | 
				
			||||||
 | 
					  Box,
 | 
				
			||||||
 | 
					  FormControl,
 | 
				
			||||||
 | 
					  Button,
 | 
				
			||||||
 | 
					  Image
 | 
				
			||||||
 | 
					} from "native-base";
 | 
				
			||||||
 | 
					import logo from "../assets/logo-katoikia.png";
 | 
				
			||||||
 | 
					import { Entypo } from '@expo/vector-icons';
 | 
				
			||||||
 | 
					import { MaterialCommunityIcons } from '@expo/vector-icons';
 | 
				
			||||||
 | 
					import { View, TextInput, StyleSheet } from "react-native";
 | 
				
			||||||
 | 
					import { UserContext } from "../context/UserContext";
 | 
				
			||||||
 | 
					import { API } from "../environment/api";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const baseURL = `${API.BASE_URL}/user/loginUser`;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default function LogIn({ navigation }) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  const { addUser } = useContext(UserContext);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  const [credentials, setCredentials] = useState({
 | 
				
			||||||
 | 
					    email: "lalo@lalo.com",
 | 
				
			||||||
 | 
					    password: "12345"
 | 
				
			||||||
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  const onHandleChange = (name) => (value) => setCredentials(prev => ({ ...prev, [name]: value }))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  const iniciarSesion = async () => {
 | 
				
			||||||
 | 
					    try {
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					      console.log(baseURL);
 | 
				
			||||||
 | 
					      await fetch(baseURL, {
 | 
				
			||||||
 | 
					        cache: 'no-cache', 
 | 
				
			||||||
 | 
					        method: 'POST', 
 | 
				
			||||||
 | 
					        body: JSON.stringify(credentials), 
 | 
				
			||||||
 | 
					        headers: {
 | 
				
			||||||
 | 
					          'Content-Type': 'application/json'
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					      .then(response => {
 | 
				
			||||||
 | 
					        if (response.status != 201){
 | 
				
			||||||
 | 
					          console.log('ocurrio un error ');
 | 
				
			||||||
 | 
					        }else{
 | 
				
			||||||
 | 
					          return response.json(); 
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					      .then( response => {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // inqulino 4 y guarda 3
 | 
				
			||||||
 | 
					         const user = response.message
 | 
				
			||||||
 | 
					          if(user.user_type == '4'){
 | 
				
			||||||
 | 
					            addUser(user);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            navigation.navigate('Comunicados', {user})
 | 
				
			||||||
 | 
					          }else if(user.user_type == '3'){
 | 
				
			||||||
 | 
					            addUser(user);
 | 
				
			||||||
 | 
					            navigation.navigate('Comunicados', {user})
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					      
 | 
				
			||||||
 | 
					    } catch (error) {
 | 
				
			||||||
 | 
					      console.log("ERROR: " +error);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  return (
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <Center w="100%">
 | 
				
			||||||
 | 
					      <Box safeArea p="2" py="8" w="90%" maxW="290">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <Center>
 | 
				
			||||||
 | 
					          <Image source={
 | 
				
			||||||
 | 
					            logo
 | 
				
			||||||
 | 
					          } width={500} height={550} m='2'
 | 
				
			||||||
 | 
					            alt="Katoikia logo" size="xl" justifyContent="center" />
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        </Center>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <Heading
 | 
				
			||||||
 | 
					          size="lg"
 | 
				
			||||||
 | 
					          fontWeight="600"
 | 
				
			||||||
 | 
					          color="coolGray.800"
 | 
				
			||||||
 | 
					          _dark={{
 | 
				
			||||||
 | 
					            color: "warmGray.50",
 | 
				
			||||||
 | 
					          }}
 | 
				
			||||||
 | 
					        >
 | 
				
			||||||
 | 
					          Bienvenido a Katoikia
 | 
				
			||||||
 | 
					        </Heading>
 | 
				
			||||||
 | 
					        <Heading
 | 
				
			||||||
 | 
					          mt="1"
 | 
				
			||||||
 | 
					          _dark={{
 | 
				
			||||||
 | 
					            color: "warmGray.200",
 | 
				
			||||||
 | 
					          }}
 | 
				
			||||||
 | 
					          color="coolGray.600"
 | 
				
			||||||
 | 
					          fontWeight="medium"
 | 
				
			||||||
 | 
					          size="xs"
 | 
				
			||||||
 | 
					        >
 | 
				
			||||||
 | 
					          Su app de comunidad de confianza
 | 
				
			||||||
 | 
					        </Heading>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <View style={styles.container}>
 | 
				
			||||||
 | 
					          <VStack space={3} mt="5">
 | 
				
			||||||
 | 
					            <FormControl isRequired >
 | 
				
			||||||
 | 
					              <FormControl.Label Text='bold'> Correo Electrónico </FormControl.Label>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					              <View style={styles.viewSection}>
 | 
				
			||||||
 | 
					                <Entypo name="email" size={20} color="grey" style={styles.iconStyle} />
 | 
				
			||||||
 | 
					                <TextInput
 | 
				
			||||||
 | 
					                  name='email'
 | 
				
			||||||
 | 
					                  type="text"
 | 
				
			||||||
 | 
					                  style={styles.input}
 | 
				
			||||||
 | 
					                  value={credentials.email}
 | 
				
			||||||
 | 
					                  placeholder='Correo electrónico'
 | 
				
			||||||
 | 
					                  onChangeText={onHandleChange("email")} />
 | 
				
			||||||
 | 
					              </View>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            </FormControl>
 | 
				
			||||||
 | 
					            <FormControl isRequired>
 | 
				
			||||||
 | 
					              <FormControl.Label Text='bold'> Contraseña </FormControl.Label>
 | 
				
			||||||
 | 
					              <View style={styles.viewSection}>
 | 
				
			||||||
 | 
					                <MaterialCommunityIcons name="form-textbox-password" size={20} color="grey" style={styles.iconStyle} />
 | 
				
			||||||
 | 
					                <TextInput
 | 
				
			||||||
 | 
					                  name='password'
 | 
				
			||||||
 | 
					                  type="password"
 | 
				
			||||||
 | 
					                  style={styles.input}
 | 
				
			||||||
 | 
					                  value={credentials.password}
 | 
				
			||||||
 | 
					                  placeholder='Contraseña'
 | 
				
			||||||
 | 
					                  onChangeText={onHandleChange("password")} />
 | 
				
			||||||
 | 
					              </View>
 | 
				
			||||||
 | 
					              <Link
 | 
				
			||||||
 | 
					                _text={{
 | 
				
			||||||
 | 
					                  fontSize: "xs",
 | 
				
			||||||
 | 
					                  fontWeight: "500",
 | 
				
			||||||
 | 
					                  color: "indigo.500",
 | 
				
			||||||
 | 
					                  marginTop: "10"
 | 
				
			||||||
 | 
					                }}
 | 
				
			||||||
 | 
					                alignSelf="flex-end"
 | 
				
			||||||
 | 
					                mt="1"
 | 
				
			||||||
 | 
					                onPress={() => navigation.navigate('Password')}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					              >
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                Recuperar contraseña
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					              </Link>
 | 
				
			||||||
 | 
					            </FormControl>
 | 
				
			||||||
 | 
					            <Button mt="2" backgroundColor="#D7A86E" onPress={iniciarSesion}
 | 
				
			||||||
 | 
					            >
 | 
				
			||||||
 | 
					              <Text>Continuar</Text>
 | 
				
			||||||
 | 
					            </Button>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          </VStack></View>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      </Box>
 | 
				
			||||||
 | 
					    </Center>
 | 
				
			||||||
 | 
					  );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const styles = StyleSheet.create({
 | 
				
			||||||
 | 
					  input: {
 | 
				
			||||||
 | 
					    height: 40,
 | 
				
			||||||
 | 
					    margin: 10,
 | 
				
			||||||
 | 
					    borderWidth: 0.5,
 | 
				
			||||||
 | 
					    padding: 5,
 | 
				
			||||||
 | 
					    flex: 1,
 | 
				
			||||||
 | 
					    paddingTop: 10,
 | 
				
			||||||
 | 
					    paddingRight: 10,
 | 
				
			||||||
 | 
					    paddingBottom: 10,
 | 
				
			||||||
 | 
					    paddingLeft: 0,
 | 
				
			||||||
 | 
					    marginTop: 50,
 | 
				
			||||||
 | 
					    marginBottom: 10,
 | 
				
			||||||
 | 
					    borderRadius: 4
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  iconStyle: {
 | 
				
			||||||
 | 
					    paddingBottom: 20,
 | 
				
			||||||
 | 
					    marginTop: 3,
 | 
				
			||||||
 | 
					    paddingTop: 35
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  viewSection: {
 | 
				
			||||||
 | 
					    flex: 1,
 | 
				
			||||||
 | 
					    flexDirection: 'row',
 | 
				
			||||||
 | 
					    justifyContent: 'center',
 | 
				
			||||||
 | 
					    alignItems: 'center',
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    marginBottom: 28
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  container: {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,44 @@
 | 
				
			||||||
 | 
					import React from "react";
 | 
				
			||||||
 | 
					import { Icon } from "native-base";
 | 
				
			||||||
 | 
					import { G, Path } from "react-native-svg";
 | 
				
			||||||
 | 
					const NativeBaseIcon = () => {
 | 
				
			||||||
 | 
					  return (
 | 
				
			||||||
 | 
					    <Icon size="220px" viewBox="0 0 602.339 681.729">
 | 
				
			||||||
 | 
					      <G
 | 
				
			||||||
 | 
					        id="Group_403"
 | 
				
			||||||
 | 
					        data-name="Group 403"
 | 
				
			||||||
 | 
					        transform="translate(14575 1918.542)"
 | 
				
			||||||
 | 
					      >
 | 
				
			||||||
 | 
					        <Path
 | 
				
			||||||
 | 
					          id="Path_1"
 | 
				
			||||||
 | 
					          data-name="Path 1"
 | 
				
			||||||
 | 
					          d="M488.722,0A45.161,45.161,0,0,1,527.83,22.576L675.676,278.584a45.162,45.162,0,0,1,0,45.171L527.83,579.763a45.162,45.162,0,0,1-39.108,22.576H193.008A45.162,45.162,0,0,1,153.9,579.763L6.053,323.755a45.162,45.162,0,0,1,0-45.171L153.9,22.576A45.162,45.162,0,0,1,193.008,0Z"
 | 
				
			||||||
 | 
					          transform="translate(-13972.661 -1918.542) rotate(90)"
 | 
				
			||||||
 | 
					          fill="#356290"
 | 
				
			||||||
 | 
					        />
 | 
				
			||||||
 | 
					        <Path
 | 
				
			||||||
 | 
					          id="Path_252"
 | 
				
			||||||
 | 
					          data-name="Path 252"
 | 
				
			||||||
 | 
					          d="M401.1,0A60.816,60.816,0,0,1,453.77,30.405L567.2,226.844a60.816,60.816,0,0,1,0,60.82L453.77,484.1A60.816,60.816,0,0,1,401.1,514.509H174.241A60.816,60.816,0,0,1,121.575,484.1L8.149,287.665a60.816,60.816,0,0,1,0-60.82L121.575,30.405A60.816,60.816,0,0,1,174.241,0Z"
 | 
				
			||||||
 | 
					          transform="translate(-14016.576 -1865.281) rotate(90)"
 | 
				
			||||||
 | 
					          fill="#1784b2"
 | 
				
			||||||
 | 
					        />
 | 
				
			||||||
 | 
					        <Path
 | 
				
			||||||
 | 
					          id="Path_251"
 | 
				
			||||||
 | 
					          data-name="Path 251"
 | 
				
			||||||
 | 
					          d="M345.81,0a36.573,36.573,0,0,1,31.674,18.288L480.566,196.856a36.573,36.573,0,0,1,0,36.569L377.484,411.993a36.573,36.573,0,0,1-31.674,18.288H139.655a36.572,36.572,0,0,1-31.674-18.288L4.9,233.425a36.573,36.573,0,0,1,0-36.569L107.981,18.288A36.573,36.573,0,0,1,139.655,0Z"
 | 
				
			||||||
 | 
					          transform="translate(-14058.69 -1820.41) rotate(90)"
 | 
				
			||||||
 | 
					          fill="#50bfc3"
 | 
				
			||||||
 | 
					        />
 | 
				
			||||||
 | 
					        <Path
 | 
				
			||||||
 | 
					          id="_x3C__x2F__x3E_"
 | 
				
			||||||
 | 
					          d="M187.066,335.455V297.993l-65.272-21.949,65.272-22.523V216.059L81,259.5v32.521Zm38.726,29.3L286.123,174H256.7l-60.33,190.759Zm72.052-29.3,106.066-43.783V259.267L297.844,216.059V254.44l59.3,23.328-59.3,19.421Z"
 | 
				
			||||||
 | 
					          transform="translate(-14516.286 -1846.988)"
 | 
				
			||||||
 | 
					          fill="#fff"
 | 
				
			||||||
 | 
					        />
 | 
				
			||||||
 | 
					      </G>
 | 
				
			||||||
 | 
					    </Icon>
 | 
				
			||||||
 | 
					  );
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default NativeBaseIcon;
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,146 @@
 | 
				
			||||||
 | 
					import React, { useContext, useState } from "react";
 | 
				
			||||||
 | 
					import { API } from "../environment/api";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import {
 | 
				
			||||||
 | 
					  Box, Button,
 | 
				
			||||||
 | 
					  Center, FormControl, Heading, ScrollView, VStack
 | 
				
			||||||
 | 
					} from "native-base";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import { StyleSheet, TextInput } from "react-native";
 | 
				
			||||||
 | 
					import { UserContext } from "../context/UserContext";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default function Profile({ navigation }) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  const baseURL = `${API.BASE_URL}/user/updateUser/`
 | 
				
			||||||
 | 
					  //const userData = JSON.parse(JSON.stringify(route.params));
 | 
				
			||||||
 | 
					  const [name, setName] = useState(); 
 | 
				
			||||||
 | 
					  const [apellido, setApellido] =useState(); 
 | 
				
			||||||
 | 
					  const [email, setEmail] = useState(); 
 | 
				
			||||||
 | 
					  const [password, setPassword] = useState();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  const userData = useContext(UserContext)
 | 
				
			||||||
 | 
					  const id = userData.user._id;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  console.log(userData.user);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  const updateInfo = async() => {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    const data = {
 | 
				
			||||||
 | 
					      "_id": "6301df20dac7dcf76dcecade",
 | 
				
			||||||
 | 
					      "dni": "1234567890",
 | 
				
			||||||
 | 
					      "name": name,
 | 
				
			||||||
 | 
					      "last_name": apellido,
 | 
				
			||||||
 | 
					      "email": email,
 | 
				
			||||||
 | 
					      "phone": 12121212,
 | 
				
			||||||
 | 
					      "password": "827ccb0eea8a706c4c34a16891f84e7b",
 | 
				
			||||||
 | 
					      "user_type": "3",
 | 
				
			||||||
 | 
					      "status": "1",
 | 
				
			||||||
 | 
					      "date_entry": "2022-08-21T07:30:09.929Z",
 | 
				
			||||||
 | 
					      "community_id": null,
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    try {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      await fetch(baseURL+`${id}`, {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        cache: 'no-cache', 
 | 
				
			||||||
 | 
					        method: 'PUT', 
 | 
				
			||||||
 | 
					        body: JSON.stringify(data), 
 | 
				
			||||||
 | 
					        headers: {
 | 
				
			||||||
 | 
					          'Content-Type': 'application/json'
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					      .then(response => {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        console.log(baseURL+`${id}`);
 | 
				
			||||||
 | 
					        if (response.status != 201){
 | 
				
			||||||
 | 
					          console.log('ocurrio un error ');
 | 
				
			||||||
 | 
					        }else{
 | 
				
			||||||
 | 
					          return response.json(); 
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					      
 | 
				
			||||||
 | 
					    } catch (error) {
 | 
				
			||||||
 | 
					      console.log("ERROR: " + error);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					    return (
 | 
				
			||||||
 | 
					        <Center>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          <ScrollView width='100%' h='550' ml='36' _contentContainerStyle={{
 | 
				
			||||||
 | 
					      px: "20px",
 | 
				
			||||||
 | 
					      mb: "4",
 | 
				
			||||||
 | 
					      minW: "72"
 | 
				
			||||||
 | 
					    }}>
 | 
				
			||||||
 | 
					             <Box safeArea p="2" w="90%" maxW="290" py="8">
 | 
				
			||||||
 | 
					        <Heading size="lg" color="coolGray.800" _dark={{
 | 
				
			||||||
 | 
					        color: "warmGray.50"
 | 
				
			||||||
 | 
					      }} fontWeight="semibold">
 | 
				
			||||||
 | 
					          Bienvenido {userData.user.name}
 | 
				
			||||||
 | 
					        </Heading>
 | 
				
			||||||
 | 
					        <Heading mt="1" color="coolGray.600" _dark={{
 | 
				
			||||||
 | 
					        color: "warmGray.200"
 | 
				
			||||||
 | 
					      }} fontWeight="medium" size="xs">
 | 
				
			||||||
 | 
					          Modifique sus datos
 | 
				
			||||||
 | 
					        </Heading>
 | 
				
			||||||
 | 
					        <VStack space={3} mt="5">
 | 
				
			||||||
 | 
					        <FormControl>
 | 
				
			||||||
 | 
					            <FormControl.Label>DNI</FormControl.Label>
 | 
				
			||||||
 | 
					            <TextInput type="text" defaultValue={userData.user.dni} editable={false} />
 | 
				
			||||||
 | 
					          </FormControl>
 | 
				
			||||||
 | 
					          <FormControl>
 | 
				
			||||||
 | 
					            <FormControl.Label>Teléfono</FormControl.Label>
 | 
				
			||||||
 | 
					            <TextInput type="text" defaultValue={userData.user.phone} editable={false} />
 | 
				
			||||||
 | 
					          </FormControl>
 | 
				
			||||||
 | 
					          <FormControl>
 | 
				
			||||||
 | 
					            <FormControl.Label>Nombre</FormControl.Label>
 | 
				
			||||||
 | 
					            <TextInput style={styles.input} type="text" defaultValue={userData.user.name} onChangeText={(value) => setName(value) }/>
 | 
				
			||||||
 | 
					          </FormControl>
 | 
				
			||||||
 | 
					          <FormControl>
 | 
				
			||||||
 | 
					            <FormControl.Label>Apellido</FormControl.Label>
 | 
				
			||||||
 | 
					            <TextInput style={styles.input} type="text"defaultValue={userData.user.last_name} onChangeText={(value) => setApellido(value) } />
 | 
				
			||||||
 | 
					          </FormControl>
 | 
				
			||||||
 | 
					          <FormControl>
 | 
				
			||||||
 | 
					            <FormControl.Label>Correo electrónico</FormControl.Label>
 | 
				
			||||||
 | 
					            <TextInput style={styles.input} type="text" defaultValue={userData.user.email} onChangeText={(value) => setEmail(value) }/>
 | 
				
			||||||
 | 
					          </FormControl>
 | 
				
			||||||
 | 
					          <FormControl>
 | 
				
			||||||
 | 
					            <FormControl.Label>Contraseña actual</FormControl.Label>
 | 
				
			||||||
 | 
					            <TextInput style={styles.input} type="password" defaultValue="" onChangeText={(value) => setPassword(value) }/>
 | 
				
			||||||
 | 
					          </FormControl>
 | 
				
			||||||
 | 
					          
 | 
				
			||||||
 | 
					          <Button mt="2" backgroundColor="orange.300" onPress={() => updateInfo()}>
 | 
				
			||||||
 | 
					            Actualizar
 | 
				
			||||||
 | 
					          </Button>
 | 
				
			||||||
 | 
					          <Button mt="6" colorScheme="error" onPress={() => navigation.navigate('Inicio')}>
 | 
				
			||||||
 | 
					            Cerrar sesión
 | 
				
			||||||
 | 
					          </Button>
 | 
				
			||||||
 | 
					        </VStack>
 | 
				
			||||||
 | 
					      </Box>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      </ScrollView>
 | 
				
			||||||
 | 
					    </Center>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const styles = StyleSheet.create({
 | 
				
			||||||
 | 
					  input: {
 | 
				
			||||||
 | 
					    height: 10,
 | 
				
			||||||
 | 
					    margin: 3,
 | 
				
			||||||
 | 
					    borderWidth: 0.5,
 | 
				
			||||||
 | 
					    padding: 5,
 | 
				
			||||||
 | 
					    flex: 1,
 | 
				
			||||||
 | 
					    paddingTop: 9,
 | 
				
			||||||
 | 
					    paddingRight: 19,
 | 
				
			||||||
 | 
					    paddingBottom: 20,
 | 
				
			||||||
 | 
					    paddingLeft: 0,
 | 
				
			||||||
 | 
					    marginTop: 6,
 | 
				
			||||||
 | 
					    marginBottom: 6,
 | 
				
			||||||
 | 
					    borderRadius: 4
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,103 @@
 | 
				
			||||||
 | 
					import React, { useState } from "react";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import {
 | 
				
			||||||
 | 
					    Box, 
 | 
				
			||||||
 | 
					    Heading, 
 | 
				
			||||||
 | 
					    VStack, 
 | 
				
			||||||
 | 
					    FormControl,  
 | 
				
			||||||
 | 
					    Button,
 | 
				
			||||||
 | 
					    Center,
 | 
				
			||||||
 | 
					    ScrollView
 | 
				
			||||||
 | 
					  } from "native-base";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  import { View, TextInput, StyleSheet } from "react-native";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default function ProfileGuarda({route, navigation}){
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  const userData = JSON.parse(JSON.stringify(route.params));
 | 
				
			||||||
 | 
					  const [name, setName] = useState(); 
 | 
				
			||||||
 | 
					  const [apellido, setApellido] =useState(); 
 | 
				
			||||||
 | 
					  const [email, setEmail] = useState(); 
 | 
				
			||||||
 | 
					  const [password, setPassword] = useState();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  console.log(userData.user);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  const updateInfo = async() => {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					    return (
 | 
				
			||||||
 | 
					        <Center>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          <ScrollView width='100%' h='550' ml='36' _contentContainerStyle={{
 | 
				
			||||||
 | 
					      px: "20px",
 | 
				
			||||||
 | 
					      mb: "4",
 | 
				
			||||||
 | 
					      minW: "72"
 | 
				
			||||||
 | 
					    }}>
 | 
				
			||||||
 | 
					             <Box safeArea p="2" w="90%" maxW="290" py="8">
 | 
				
			||||||
 | 
					        <Heading size="lg" color="coolGray.800" _dark={{
 | 
				
			||||||
 | 
					        color: "warmGray.50"
 | 
				
			||||||
 | 
					      }} fontWeight="semibold">
 | 
				
			||||||
 | 
					          Bienvenido {userData.user.name}
 | 
				
			||||||
 | 
					        </Heading>
 | 
				
			||||||
 | 
					        <Heading mt="1" color="coolGray.600" _dark={{
 | 
				
			||||||
 | 
					        color: "warmGray.200"
 | 
				
			||||||
 | 
					      }} fontWeight="medium" size="xs">
 | 
				
			||||||
 | 
					          Modifique sus datos
 | 
				
			||||||
 | 
					        </Heading>
 | 
				
			||||||
 | 
					        <VStack space={3} mt="5">
 | 
				
			||||||
 | 
					        <FormControl>
 | 
				
			||||||
 | 
					            <FormControl.Label>DNI</FormControl.Label>
 | 
				
			||||||
 | 
					            <TextInput type="text" defaultValue={userData.user.dni} editable='false' />
 | 
				
			||||||
 | 
					          </FormControl>
 | 
				
			||||||
 | 
					          <FormControl>
 | 
				
			||||||
 | 
					            <FormControl.Label>Nombre</FormControl.Label>
 | 
				
			||||||
 | 
					            <TextInput style={styles.input} type="text" defaultValue={userData.user.name} onChangeText={(value) => setName(value) }/>
 | 
				
			||||||
 | 
					          </FormControl>
 | 
				
			||||||
 | 
					          <FormControl>
 | 
				
			||||||
 | 
					            <FormControl.Label>Apellido</FormControl.Label>
 | 
				
			||||||
 | 
					            <TextInput style={styles.input} type="text"defaultValue={userData.user.last_name} onChangeText={(value) => setApellido(value) } />
 | 
				
			||||||
 | 
					          </FormControl>
 | 
				
			||||||
 | 
					          <FormControl>
 | 
				
			||||||
 | 
					            <FormControl.Label>Correo electrónico</FormControl.Label>
 | 
				
			||||||
 | 
					            <TextInput style={styles.input} type="text" defaultValue={userData.user.email} onChangeText={(value) => setEmail(value) }/>
 | 
				
			||||||
 | 
					          </FormControl>
 | 
				
			||||||
 | 
					          <FormControl>
 | 
				
			||||||
 | 
					            <FormControl.Label>Contraseña actual</FormControl.Label>
 | 
				
			||||||
 | 
					            <TextInput style={styles.input} type="password" defaultValue="" onChangeText={(value) => setPassword(value) }/>
 | 
				
			||||||
 | 
					          </FormControl>
 | 
				
			||||||
 | 
					          
 | 
				
			||||||
 | 
					          <Button mt="2" backgroundColor="orange.300">
 | 
				
			||||||
 | 
					            Actualizar
 | 
				
			||||||
 | 
					          </Button>
 | 
				
			||||||
 | 
					          <Button mt="6" colorScheme="error" onPress={() => navigation.navigate('Inicio')}>
 | 
				
			||||||
 | 
					            Cerrar sesión
 | 
				
			||||||
 | 
					          </Button>
 | 
				
			||||||
 | 
					        </VStack>
 | 
				
			||||||
 | 
					      </Box>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      </ScrollView>
 | 
				
			||||||
 | 
					        </Center>
 | 
				
			||||||
 | 
					       
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const styles = StyleSheet.create({
 | 
				
			||||||
 | 
					  input: {
 | 
				
			||||||
 | 
					    height: 10,
 | 
				
			||||||
 | 
					    margin:3,
 | 
				
			||||||
 | 
					    borderWidth: 0.5,
 | 
				
			||||||
 | 
					    padding: 5,
 | 
				
			||||||
 | 
					    flex: 1,
 | 
				
			||||||
 | 
					    paddingTop: 9,
 | 
				
			||||||
 | 
					    paddingRight: 19,
 | 
				
			||||||
 | 
					    paddingBottom: 20,
 | 
				
			||||||
 | 
					    paddingLeft: 0,
 | 
				
			||||||
 | 
					    marginTop: 6, 
 | 
				
			||||||
 | 
					    marginBottom:6, 
 | 
				
			||||||
 | 
					    borderRadius: 4
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,56 @@
 | 
				
			||||||
 | 
					import React from "react";
 | 
				
			||||||
 | 
					import {
 | 
				
			||||||
 | 
					    Text,
 | 
				
			||||||
 | 
					    Link,
 | 
				
			||||||
 | 
					    Center,
 | 
				
			||||||
 | 
					    Heading,
 | 
				
			||||||
 | 
					    VStack,
 | 
				
			||||||
 | 
					    Box,
 | 
				
			||||||
 | 
					    FormControl,
 | 
				
			||||||
 | 
					    Input,
 | 
				
			||||||
 | 
					    Button
 | 
				
			||||||
 | 
					  } from "native-base";
 | 
				
			||||||
 | 
					export default function RecoverPassword () {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					return (
 | 
				
			||||||
 | 
					    <Center w="100%">
 | 
				
			||||||
 | 
					    <Box safeArea p="2" py="8" w="90%" maxW="290">
 | 
				
			||||||
 | 
					      <Heading
 | 
				
			||||||
 | 
					        size="lg"
 | 
				
			||||||
 | 
					        fontWeight="600"
 | 
				
			||||||
 | 
					        color="coolGray.800"
 | 
				
			||||||
 | 
					        _dark={{
 | 
				
			||||||
 | 
					          color: "warmGray.50",
 | 
				
			||||||
 | 
					        }}
 | 
				
			||||||
 | 
					      >
 | 
				
			||||||
 | 
					        Recupere su contraseña
 | 
				
			||||||
 | 
					      </Heading>
 | 
				
			||||||
 | 
					      <Heading
 | 
				
			||||||
 | 
					        mt="1"
 | 
				
			||||||
 | 
					        _dark={{
 | 
				
			||||||
 | 
					          color: "warmGray.200",
 | 
				
			||||||
 | 
					        }}
 | 
				
			||||||
 | 
					        color="coolGray.600"
 | 
				
			||||||
 | 
					        fontWeight="medium"
 | 
				
			||||||
 | 
					        size="xs"
 | 
				
			||||||
 | 
					      >
 | 
				
			||||||
 | 
					        Se le enviaran las instrucciones al correo electrónico
 | 
				
			||||||
 | 
					      </Heading>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      <VStack space={3} mt="5">
 | 
				
			||||||
 | 
					        <FormControl>
 | 
				
			||||||
 | 
					          <FormControl.Label> Correo Electrónico</FormControl.Label>
 | 
				
			||||||
 | 
					          <Input />
 | 
				
			||||||
 | 
					        </FormControl>
 | 
				
			||||||
 | 
					       
 | 
				
			||||||
 | 
					        <Button  mt="2" colorScheme="primary" onPress={() => navigation.navigate('Home')}
 | 
				
			||||||
 | 
					        >
 | 
				
			||||||
 | 
					          <Text>Recuperar contraseña</Text>
 | 
				
			||||||
 | 
					        </Button>
 | 
				
			||||||
 | 
					       
 | 
				
			||||||
 | 
					      </VStack>
 | 
				
			||||||
 | 
					    </Box>
 | 
				
			||||||
 | 
					  </Center>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,86 @@
 | 
				
			||||||
 | 
					import React, {useContext, useEffect, useState} from "react";
 | 
				
			||||||
 | 
					import {
 | 
				
			||||||
 | 
					  Box,
 | 
				
			||||||
 | 
					  ScrollView,
 | 
				
			||||||
 | 
					  Fab,
 | 
				
			||||||
 | 
					  Icon
 | 
				
			||||||
 | 
					} from "native-base";
 | 
				
			||||||
 | 
					import { API } from "../environment/api";
 | 
				
			||||||
 | 
					import { MaterialCommunityIcons } from '@expo/vector-icons'; 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import { UserContext } from "../context/UserContext";
 | 
				
			||||||
 | 
					import { ReservasCard } from "./ReservasCard";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default function Reservas({navigation}) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  const { user } = useContext(UserContext)
 | 
				
			||||||
 | 
					  const [isRequesting, setIsRequesting] = useState(false);
 | 
				
			||||||
 | 
					  const [reservas, setReservas] = useState([]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  useEffect(() => {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    const onRequestReservasData = async () => {
 | 
				
			||||||
 | 
					      setIsRequesting(true);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      try {
 | 
				
			||||||
 | 
					        const jsonResponse = await fetch(`${API.BASE_URL}/reservation/allReservations`, {
 | 
				
			||||||
 | 
					          method: "GET",
 | 
				
			||||||
 | 
					          headers: {
 | 
				
			||||||
 | 
					            'Content-Type': 'application/json'
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        const response = await jsonResponse.json();
 | 
				
			||||||
 | 
					        console.log(response);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        setReservas(response.message);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        try {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					         
 | 
				
			||||||
 | 
					        } catch (error) {
 | 
				
			||||||
 | 
					          console.log("ERROR:" + error);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      } catch (error) {
 | 
				
			||||||
 | 
					          console.log("ERROR:" + error);
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      setIsRequesting(false)
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    onRequestReservasData()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  }, [user])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  return (
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					    <ScrollView showsVerticalScrollIndicator={false}>
 | 
				
			||||||
 | 
					          
 | 
				
			||||||
 | 
					          {
 | 
				
			||||||
 | 
					          reservas.map(item => (
 | 
				
			||||||
 | 
					            <ReservasCard
 | 
				
			||||||
 | 
					              key={item._id}
 | 
				
			||||||
 | 
					              date={item.date_entry}
 | 
				
			||||||
 | 
					              startTime={item.start_time}
 | 
				
			||||||
 | 
					              endTime={item.finish_time}
 | 
				
			||||||
 | 
					              status={item.status}
 | 
				
			||||||
 | 
					            />
 | 
				
			||||||
 | 
					          ))
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <Box height="200" w="300" shadow="2" rounded="lg" m='5' ml='9' _dark={{
 | 
				
			||||||
 | 
					      bg: "coolGray.200:alpha.20"
 | 
				
			||||||
 | 
					    }} _light={{
 | 
				
			||||||
 | 
					      bg: "coolGray.200:alpha.20"
 | 
				
			||||||
 | 
					    }}>
 | 
				
			||||||
 | 
					        <Fab renderInPortal={false} shadow={2} size="sm" icon={<Icon mb="0.5" as={<MaterialCommunityIcons name={'plus'} />} color="white" size="sm" />} onPress={() => navigation.navigate('area')}/>
 | 
				
			||||||
 | 
					      </Box>
 | 
				
			||||||
 | 
					    </ScrollView>
 | 
				
			||||||
 | 
					  );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,76 @@
 | 
				
			||||||
 | 
					import { format } from "date-fns";
 | 
				
			||||||
 | 
					import {
 | 
				
			||||||
 | 
					    Box, HStack,
 | 
				
			||||||
 | 
					    ScrollView,
 | 
				
			||||||
 | 
					    Text, 
 | 
				
			||||||
 | 
					    Stack, 
 | 
				
			||||||
 | 
					    Heading,
 | 
				
			||||||
 | 
					    Badge
 | 
				
			||||||
 | 
					} from "native-base";
 | 
				
			||||||
 | 
					import PropTypes from 'prop-types';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import React from 'react';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export const ReservasCard = ({ date, startTime, endTime, status}) => {
 | 
				
			||||||
 | 
					    const dateFormated = format(new Date(date), "dd LL yyyy")
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    try {
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					    } catch (error) {
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return (
 | 
				
			||||||
 | 
					        <ScrollView showsVerticalScrollIndicator={false}> 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					             
 | 
				
			||||||
 | 
					    <Box mt="5" alignItems="center">
 | 
				
			||||||
 | 
					      <Box width="80" rounded="lg" overflow="hidden" borderColor="coolGray.200" borderWidth="1" _dark={{
 | 
				
			||||||
 | 
					      borderColor: "coolGray.600",
 | 
				
			||||||
 | 
					      backgroundColor: "gray.700"
 | 
				
			||||||
 | 
					    }} _web={{
 | 
				
			||||||
 | 
					      shadow: 2,
 | 
				
			||||||
 | 
					      borderWidth: 0
 | 
				
			||||||
 | 
					    }} _light={{
 | 
				
			||||||
 | 
					      backgroundColor: "gray.50"
 | 
				
			||||||
 | 
					    }}>
 | 
				
			||||||
 | 
					        <Stack p="4" space={3}>
 | 
				
			||||||
 | 
					          <Stack space={2}>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          <Badge backgroundColor={status === 1 ? 'tertiary.500' : 'danger.600'} _text={{
 | 
				
			||||||
 | 
					                        color: "white"
 | 
				
			||||||
 | 
					                    }} variant="solid" rounded="4">
 | 
				
			||||||
 | 
					                        <Text bold={true} color='danger.50'> {status === 1 ? 'LIBRE' : 'RESERVADO'}</Text>
 | 
				
			||||||
 | 
					                    </Badge>
 | 
				
			||||||
 | 
					            <Heading size="md" ml="-1">
 | 
				
			||||||
 | 
					              Reserva #1
 | 
				
			||||||
 | 
					            </Heading>
 | 
				
			||||||
 | 
					            <Text fontSize="xs" _light={{
 | 
				
			||||||
 | 
					            color: "violet.500"
 | 
				
			||||||
 | 
					          }} _dark={{
 | 
				
			||||||
 | 
					            color: "violet.400"
 | 
				
			||||||
 | 
					          }} fontWeight="500" ml="-0.5" mt="-1">
 | 
				
			||||||
 | 
					             {dateFormated}
 | 
				
			||||||
 | 
					            </Text>
 | 
				
			||||||
 | 
					          </Stack>
 | 
				
			||||||
 | 
					          <Text fontWeight="400">
 | 
				
			||||||
 | 
					            Hora de inicio: {startTime}
 | 
				
			||||||
 | 
					          </Text>
 | 
				
			||||||
 | 
					          <Text fontWeight="400">
 | 
				
			||||||
 | 
					            Hora de finalización: {endTime}
 | 
				
			||||||
 | 
					          </Text>
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        </Stack>
 | 
				
			||||||
 | 
					      </Box>
 | 
				
			||||||
 | 
					    </Box>
 | 
				
			||||||
 | 
					        </ScrollView>
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					ReservasCard.propTypes = {
 | 
				
			||||||
 | 
					    date: PropTypes.string.isRequired,
 | 
				
			||||||
 | 
					    startTime: PropTypes.string.isRequired,
 | 
				
			||||||
 | 
					    endTime: PropTypes.string.isRequired,
 | 
				
			||||||
 | 
					    status: PropTypes.string.isRequired
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -1,85 +0,0 @@
 | 
				
			||||||
import React from 'react';
 | 
					 | 
				
			||||||
import { StyleSheet } from 'react-native';
 | 
					 | 
				
			||||||
import PropTypes from 'prop-types';
 | 
					 | 
				
			||||||
import ModalDropdown from 'react-native-material-dropdown';
 | 
					 | 
				
			||||||
import { Block, Text } from 'galio-framework';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import Icon from './Icon';
 | 
					 | 
				
			||||||
import { argonTheme } from '../constants';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
class DropDown extends React.Component {
 | 
					 | 
				
			||||||
  state = {
 | 
					 | 
				
			||||||
    value: 1,
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  handleOnSelect = (index, value) => {
 | 
					 | 
				
			||||||
    const { onSelect } = this.props;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    this.setState({ value: value });
 | 
					 | 
				
			||||||
    onSelect && onSelect(index, value);
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  render() {
 | 
					 | 
				
			||||||
    const { onSelect, iconName, iconFamily, iconSize, iconColor, color, textStyle, style, ...props } = this.props;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    const modalStyles = [
 | 
					 | 
				
			||||||
      styles.qty,
 | 
					 | 
				
			||||||
      color && { backgroundColor: color },
 | 
					 | 
				
			||||||
      style
 | 
					 | 
				
			||||||
    ];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    const textStyles = [
 | 
					 | 
				
			||||||
      styles.text,
 | 
					 | 
				
			||||||
      textStyle
 | 
					 | 
				
			||||||
    ];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return (
 | 
					 | 
				
			||||||
      <ModalDropdown
 | 
					 | 
				
			||||||
        style={modalStyles}
 | 
					 | 
				
			||||||
        onSelect={this.handleOnSelect}
 | 
					 | 
				
			||||||
        dropdownStyle={styles.dropdown}
 | 
					 | 
				
			||||||
        dropdownTextStyle={{paddingLeft:16, fontSize:12}}
 | 
					 | 
				
			||||||
        {...props}>
 | 
					 | 
				
			||||||
        <Block flex row middle space="between">
 | 
					 | 
				
			||||||
          <Text size={12} style={textStyles}>{this.state.value}</Text>
 | 
					 | 
				
			||||||
          <Icon name={iconName || "nav-down"} family={iconFamily || "ArgonExtra"} size={iconSize || 10} color={iconColor || argonTheme.COLORS.WHITE} />
 | 
					 | 
				
			||||||
        </Block>
 | 
					 | 
				
			||||||
      </ModalDropdown>
 | 
					 | 
				
			||||||
    )
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
DropDown.propTypes = {
 | 
					 | 
				
			||||||
  onSelect: PropTypes.func,
 | 
					 | 
				
			||||||
  iconName: PropTypes.string,
 | 
					 | 
				
			||||||
  iconFamily: PropTypes.string,
 | 
					 | 
				
			||||||
  iconSize: PropTypes.number,
 | 
					 | 
				
			||||||
  color: PropTypes.string,
 | 
					 | 
				
			||||||
  textStyle: PropTypes.any,
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const styles = StyleSheet.create({
 | 
					 | 
				
			||||||
  qty: {
 | 
					 | 
				
			||||||
    width: 100,
 | 
					 | 
				
			||||||
    backgroundColor: argonTheme.COLORS.DEFAULT,
 | 
					 | 
				
			||||||
    paddingHorizontal: 16,
 | 
					 | 
				
			||||||
    paddingTop: 10,
 | 
					 | 
				
			||||||
    paddingBottom:9.5,
 | 
					 | 
				
			||||||
    borderRadius: 4,
 | 
					 | 
				
			||||||
    shadowColor: "rgba(0, 0, 0, 0.1)",
 | 
					 | 
				
			||||||
    shadowOffset: { width: 0, height: 2 },
 | 
					 | 
				
			||||||
    shadowRadius: 4,
 | 
					 | 
				
			||||||
    shadowOpacity: 1,
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  text: {
 | 
					 | 
				
			||||||
    color: argonTheme.COLORS.WHITE,
 | 
					 | 
				
			||||||
    fontWeight: '600'
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  dropdown: {
 | 
					 | 
				
			||||||
    marginTop: 8,
 | 
					 | 
				
			||||||
    marginLeft: -16,
 | 
					 | 
				
			||||||
    width: 100,
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
});
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export default DropDown;
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,24 +0,0 @@
 | 
				
			||||||
import React from 'react';
 | 
					 | 
				
			||||||
import { Switch, Platform } from 'react-native';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import argonTheme from '../constants/Theme';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
class MkSwitch extends React.Component {
 | 
					 | 
				
			||||||
  render() {
 | 
					 | 
				
			||||||
    const { value, ...props } = this.props;
 | 
					 | 
				
			||||||
    const thumbColor = Platform.OS === 'ios' ? null :
 | 
					 | 
				
			||||||
      Platform.OS === 'android' && value ? argonTheme.COLORS.SWITCH_ON : argonTheme.COLORS.SWITCH_OFF;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return (
 | 
					 | 
				
			||||||
      <Switch
 | 
					 | 
				
			||||||
        value={value}
 | 
					 | 
				
			||||||
        thumbColor={thumbColor}
 | 
					 | 
				
			||||||
        ios_backgroundColor={argonTheme.COLORS.SWITCH_OFF}
 | 
					 | 
				
			||||||
        trackColor={{ false: argonTheme.COLORS.SWITCH_ON, true: argonTheme.COLORS.SWITCH_ON }}
 | 
					 | 
				
			||||||
        {...props}
 | 
					 | 
				
			||||||
      />
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export default MkSwitch;
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,159 +0,0 @@
 | 
				
			||||||
import React from 'react';
 | 
					 | 
				
			||||||
import { StyleSheet, Dimensions, FlatList, Animated } from 'react-native';
 | 
					 | 
				
			||||||
import { Block, theme } from 'galio-framework';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const { width } = Dimensions.get('screen');
 | 
					 | 
				
			||||||
import argonTheme from '../constants/Theme';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const defaultMenu = [
 | 
					 | 
				
			||||||
  { id: 'popular', title: 'Popular', },
 | 
					 | 
				
			||||||
  { id: 'beauty', title: 'Beauty', },
 | 
					 | 
				
			||||||
  { id: 'cars', title: 'Cars', },
 | 
					 | 
				
			||||||
  { id: 'motocycles', title: 'Motocycles', },
 | 
					 | 
				
			||||||
];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export default class Tabs extends React.Component {
 | 
					 | 
				
			||||||
  static defaultProps = {
 | 
					 | 
				
			||||||
    data: defaultMenu,
 | 
					 | 
				
			||||||
    initialIndex: null,
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  state = {
 | 
					 | 
				
			||||||
    active: null,
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  componentDidMount() {
 | 
					 | 
				
			||||||
    const { initialIndex } = this.props;
 | 
					 | 
				
			||||||
    initialIndex && this.selectMenu(initialIndex);
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  animatedValue = new Animated.Value(1);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  animate() {
 | 
					 | 
				
			||||||
    this.animatedValue.setValue(0);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Animated.timing(this.animatedValue, {
 | 
					 | 
				
			||||||
      toValue: 1,
 | 
					 | 
				
			||||||
      duration: 300,
 | 
					 | 
				
			||||||
      useNativeDriver: false, // color not supported
 | 
					 | 
				
			||||||
    }).start()
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  menuRef = React.createRef();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  onScrollToIndexFailed = () => {
 | 
					 | 
				
			||||||
    this.menuRef.current.scrollToIndex({
 | 
					 | 
				
			||||||
      index: 0,
 | 
					 | 
				
			||||||
      viewPosition: 0.5
 | 
					 | 
				
			||||||
    });
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  selectMenu = (id) => {
 | 
					 | 
				
			||||||
    this.setState({ active: id });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    this.menuRef.current.scrollToIndex({
 | 
					 | 
				
			||||||
      index: this.props.data.findIndex(item => item.id === id),
 | 
					 | 
				
			||||||
      viewPosition: 0.5
 | 
					 | 
				
			||||||
    });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    this.animate();
 | 
					 | 
				
			||||||
    this.props.onChange && this.props.onChange(id);
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  renderItem = (item) => {
 | 
					 | 
				
			||||||
    const isActive = this.state.active === item.id;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    const textColor = this.animatedValue.interpolate({
 | 
					 | 
				
			||||||
      inputRange: [0, 1],
 | 
					 | 
				
			||||||
      outputRange: [argonTheme.COLORS.BLACK, isActive ? argonTheme.COLORS.WHITE : argonTheme.COLORS.BLACK],
 | 
					 | 
				
			||||||
      extrapolate: 'clamp',
 | 
					 | 
				
			||||||
    });
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
    const containerStyles = [
 | 
					 | 
				
			||||||
      styles.titleContainer,
 | 
					 | 
				
			||||||
      !isActive && { backgroundColor: argonTheme.COLORS.SECONDARY },
 | 
					 | 
				
			||||||
      isActive && styles.containerShadow
 | 
					 | 
				
			||||||
    ];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return (
 | 
					 | 
				
			||||||
      <Block style={containerStyles}>
 | 
					 | 
				
			||||||
        <Animated.Text
 | 
					 | 
				
			||||||
          style={[
 | 
					 | 
				
			||||||
            styles.menuTitle,
 | 
					 | 
				
			||||||
            { color: textColor }
 | 
					 | 
				
			||||||
          ]}
 | 
					 | 
				
			||||||
          onPress={() => this.selectMenu(item.id)}>
 | 
					 | 
				
			||||||
          {item.title}
 | 
					 | 
				
			||||||
        </Animated.Text>
 | 
					 | 
				
			||||||
      </Block>
 | 
					 | 
				
			||||||
    )
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  renderMenu = () => {
 | 
					 | 
				
			||||||
    const { data, ...props } = this.props;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return (
 | 
					 | 
				
			||||||
      <FlatList
 | 
					 | 
				
			||||||
        {...props}
 | 
					 | 
				
			||||||
        data={data}
 | 
					 | 
				
			||||||
        horizontal={true}
 | 
					 | 
				
			||||||
        ref={this.menuRef}
 | 
					 | 
				
			||||||
        extraData={this.state}
 | 
					 | 
				
			||||||
        keyExtractor={(item) => item.id}
 | 
					 | 
				
			||||||
        showsHorizontalScrollIndicator={false}
 | 
					 | 
				
			||||||
        onScrollToIndexFailed={this.onScrollToIndexFailed}
 | 
					 | 
				
			||||||
        renderItem={({ item }) => this.renderItem(item)}
 | 
					 | 
				
			||||||
        contentContainerStyle={styles.menu}
 | 
					 | 
				
			||||||
      />
 | 
					 | 
				
			||||||
    )
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  render() {
 | 
					 | 
				
			||||||
    return (
 | 
					 | 
				
			||||||
      <Block style={styles.container}>
 | 
					 | 
				
			||||||
        {this.renderMenu()}
 | 
					 | 
				
			||||||
      </Block>
 | 
					 | 
				
			||||||
    )
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const styles = StyleSheet.create({
 | 
					 | 
				
			||||||
  container: {
 | 
					 | 
				
			||||||
    width: width,
 | 
					 | 
				
			||||||
    backgroundColor: theme.COLORS.WHITE,
 | 
					 | 
				
			||||||
    zIndex: 2,
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  shadow: {
 | 
					 | 
				
			||||||
    shadowColor: theme.COLORS.BLACK,
 | 
					 | 
				
			||||||
    shadowOffset: { width: 0, height: 2 },
 | 
					 | 
				
			||||||
    shadowRadius: 8,
 | 
					 | 
				
			||||||
    shadowOpacity: 0.2,
 | 
					 | 
				
			||||||
    elevation: 4,
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  menu: {
 | 
					 | 
				
			||||||
    paddingHorizontal: theme.SIZES.BASE * 2.5,
 | 
					 | 
				
			||||||
    paddingTop: 8,
 | 
					 | 
				
			||||||
    paddingBottom: 16,
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  titleContainer: {
 | 
					 | 
				
			||||||
    alignItems: 'center',
 | 
					 | 
				
			||||||
    backgroundColor: argonTheme.COLORS.ACTIVE,
 | 
					 | 
				
			||||||
    borderRadius: 4,
 | 
					 | 
				
			||||||
    marginRight: 9
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  containerShadow: {
 | 
					 | 
				
			||||||
    shadowColor: 'black',
 | 
					 | 
				
			||||||
    shadowOffset: { width: 0, height: 2 },
 | 
					 | 
				
			||||||
    shadowRadius: 4,
 | 
					 | 
				
			||||||
    shadowOpacity: 0.1,
 | 
					 | 
				
			||||||
    elevation: 1,
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  menuTitle: {
 | 
					 | 
				
			||||||
    fontWeight: '600',
 | 
					 | 
				
			||||||
    fontSize: 14,
 | 
					 | 
				
			||||||
    // lineHeight: 28,
 | 
					 | 
				
			||||||
    paddingVertical: 10,
 | 
					 | 
				
			||||||
    paddingHorizontal: 16,
 | 
					 | 
				
			||||||
    color: argonTheme.COLORS.MUTED
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
});
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,19 +0,0 @@
 | 
				
			||||||
import Button from './Button';
 | 
					 | 
				
			||||||
import Card from './Card';
 | 
					 | 
				
			||||||
import DrawerItem from './DrawerItem';
 | 
					 | 
				
			||||||
import Icon from './Icon';
 | 
					 | 
				
			||||||
import Header from './Header';
 | 
					 | 
				
			||||||
import Input from './Input';
 | 
					 | 
				
			||||||
import Switch from './Switch';
 | 
					 | 
				
			||||||
import Select from './Select';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export {
 | 
					 | 
				
			||||||
  Button,
 | 
					 | 
				
			||||||
  Card,
 | 
					 | 
				
			||||||
  DrawerItem,
 | 
					 | 
				
			||||||
  Icon,
 | 
					 | 
				
			||||||
  Input,
 | 
					 | 
				
			||||||
  Header,
 | 
					 | 
				
			||||||
  Switch, 
 | 
					 | 
				
			||||||
  Select
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,41 +0,0 @@
 | 
				
			||||||
// local imgs
 | 
					 | 
				
			||||||
const Onboarding = require("../assets/imgs/bg.png");
 | 
					 | 
				
			||||||
const Logo = require("../assets/imgs/argon-logo.png");
 | 
					 | 
				
			||||||
const LogoOnboarding = require("../assets/imgs/argon-logo-onboarding.png");
 | 
					 | 
				
			||||||
const ProfileBackground = require("../assets/imgs/profile-screen-bg.png");
 | 
					 | 
				
			||||||
const RegisterBackground = require("../assets/imgs/register-bg.png");
 | 
					 | 
				
			||||||
const Pro = require("../assets/imgs/getPro-bg.png");
 | 
					 | 
				
			||||||
const ArgonLogo = require("../assets/imgs/argonlogo.png");
 | 
					 | 
				
			||||||
const iOSLogo = require("../assets/imgs/ios.png");
 | 
					 | 
				
			||||||
const androidLogo = require("../assets/imgs/android.png");
 | 
					 | 
				
			||||||
// internet imgs
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const ProfilePicture = 'https://images.unsplash.com/photo-1492633423870-43d1cd2775eb?fit=crop&w=1650&q=80';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const Viewed = [
 | 
					 | 
				
			||||||
  'https://images.unsplash.com/photo-1501601983405-7c7cabaa1581?fit=crop&w=240&q=80',
 | 
					 | 
				
			||||||
  'https://images.unsplash.com/photo-1543747579-795b9c2c3ada?fit=crop&w=240&q=80',
 | 
					 | 
				
			||||||
  'https://images.unsplash.com/photo-1551798507-629020c81463?fit=crop&w=240&q=80',
 | 
					 | 
				
			||||||
  'https://images.unsplash.com/photo-1470225620780-dba8ba36b745?fit=crop&w=240&q=80',
 | 
					 | 
				
			||||||
  'https://images.unsplash.com/photo-1503642551022-c011aafb3c88?fit=crop&w=240&q=80',
 | 
					 | 
				
			||||||
  'https://images.unsplash.com/photo-1482686115713-0fbcaced6e28?fit=crop&w=240&q=80',
 | 
					 | 
				
			||||||
];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const Products = {
 | 
					 | 
				
			||||||
  'View article': 'https://images.unsplash.com/photo-1501601983405-7c7cabaa1581?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=840&q=840',
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export default {
 | 
					 | 
				
			||||||
  Onboarding,
 | 
					 | 
				
			||||||
  Logo,
 | 
					 | 
				
			||||||
  LogoOnboarding,
 | 
					 | 
				
			||||||
  ProfileBackground,
 | 
					 | 
				
			||||||
  ProfilePicture,
 | 
					 | 
				
			||||||
  RegisterBackground,
 | 
					 | 
				
			||||||
  Viewed,
 | 
					 | 
				
			||||||
  Products,
 | 
					 | 
				
			||||||
  Pro,
 | 
					 | 
				
			||||||
  ArgonLogo,
 | 
					 | 
				
			||||||
  iOSLogo,
 | 
					 | 
				
			||||||
  androidLogo
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,32 +0,0 @@
 | 
				
			||||||
export default {
 | 
					 | 
				
			||||||
  COLORS: {
 | 
					 | 
				
			||||||
    DEFAULT: '#172B4D',
 | 
					 | 
				
			||||||
    PRIMARY: '#5E72E4',
 | 
					 | 
				
			||||||
    SECONDARY: '#F7FAFC',
 | 
					 | 
				
			||||||
    LABEL: '#FE2472',
 | 
					 | 
				
			||||||
    INFO: '#11CDEF',
 | 
					 | 
				
			||||||
    ERROR: '#F5365C',
 | 
					 | 
				
			||||||
    SUCCESS: '#2DCE89',
 | 
					 | 
				
			||||||
    WARNING: '#FB6340',
 | 
					 | 
				
			||||||
    /*not yet changed */
 | 
					 | 
				
			||||||
    MUTED: '#ADB5BD',
 | 
					 | 
				
			||||||
    INPUT: '#DCDCDC',
 | 
					 | 
				
			||||||
    INPUT_SUCCESS: '#7BDEB2',
 | 
					 | 
				
			||||||
    INPUT_ERROR: '#FCB3A4',
 | 
					 | 
				
			||||||
    ACTIVE: '#5E72E4', //same as primary
 | 
					 | 
				
			||||||
    BUTTON_COLOR: '#9C26B0', //wtf
 | 
					 | 
				
			||||||
    PLACEHOLDER: '#9FA5AA',
 | 
					 | 
				
			||||||
    SWITCH_ON: '#5E72E4',
 | 
					 | 
				
			||||||
    SWITCH_OFF: '#D4D9DD',
 | 
					 | 
				
			||||||
    GRADIENT_START: '#6B24AA',
 | 
					 | 
				
			||||||
    GRADIENT_END: '#AC2688',
 | 
					 | 
				
			||||||
    PRICE_COLOR: '#EAD5FB',
 | 
					 | 
				
			||||||
    BORDER_COLOR: '#E7E7E7',
 | 
					 | 
				
			||||||
    BLOCK: '#E7E7E7',
 | 
					 | 
				
			||||||
    ICON: '#172B4D',
 | 
					 | 
				
			||||||
    HEADER: '#525F7F',
 | 
					 | 
				
			||||||
    BORDER: '#CAD1D7',
 | 
					 | 
				
			||||||
    WHITE: '#FFFFFF',
 | 
					 | 
				
			||||||
    BLACK: '#000000'
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,29 +0,0 @@
 | 
				
			||||||
export default [
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    title: 'Ice cream is made with carrageenan …',
 | 
					 | 
				
			||||||
    image: 'https://images.unsplash.com/photo-1516559828984-fb3b99548b21?ixlib=rb-1.2.1&auto=format&fit=crop&w=2100&q=80',
 | 
					 | 
				
			||||||
    cta: 'View article', 
 | 
					 | 
				
			||||||
    horizontal: true
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    title: 'Is makeup one of your daily esse …',
 | 
					 | 
				
			||||||
    image: 'https://images.unsplash.com/photo-1519368358672-25b03afee3bf?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=2004&q=80',
 | 
					 | 
				
			||||||
    cta: 'View article'
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    title: 'Coffee is more than just a drink: It’s …',
 | 
					 | 
				
			||||||
    image: 'https://images.unsplash.com/photo-1500522144261-ea64433bbe27?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=2102&q=80',
 | 
					 | 
				
			||||||
    cta: 'View article' 
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    title: 'Fashion is a popular style, especially in …',
 | 
					 | 
				
			||||||
    image: 'https://images.unsplash.com/photo-1487222477894-8943e31ef7b2?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=1326&q=80',
 | 
					 | 
				
			||||||
    cta: 'View article' 
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    title: 'Argon is a great free UI packag …',
 | 
					 | 
				
			||||||
    image: 'https://images.unsplash.com/photo-1482686115713-0fbcaced6e28?fit=crop&w=1947&q=80',
 | 
					 | 
				
			||||||
    cta: 'View article', 
 | 
					 | 
				
			||||||
    horizontal: true
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
];
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,11 +0,0 @@
 | 
				
			||||||
import argonTheme from './Theme';
 | 
					 | 
				
			||||||
import articles from './articles';
 | 
					 | 
				
			||||||
import Images from './Images';
 | 
					 | 
				
			||||||
import tabs from './tabs';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export {
 | 
					 | 
				
			||||||
  articles, 
 | 
					 | 
				
			||||||
  argonTheme,
 | 
					 | 
				
			||||||
  Images,
 | 
					 | 
				
			||||||
  tabs
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,8 +0,0 @@
 | 
				
			||||||
export default tabs = {
 | 
					 | 
				
			||||||
  categories: [
 | 
					 | 
				
			||||||
    { id: 'popular', title: 'Popular' },
 | 
					 | 
				
			||||||
    { id: 'beauty', title: 'Beauty' },
 | 
					 | 
				
			||||||
    { id: 'fashion', title: 'Fashion' },
 | 
					 | 
				
			||||||
    { id: 'car_motorcycle', title: 'Car & Motorcycle' },
 | 
					 | 
				
			||||||
  ],
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,6 +0,0 @@
 | 
				
			||||||
import { Platform, StatusBar } from 'react-native';
 | 
					 | 
				
			||||||
import { theme } from 'galio-framework';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export const StatusHeight = StatusBar.currentHeight;
 | 
					 | 
				
			||||||
export const HeaderHeight = (theme.SIZES.BASE * 3.5 + (StatusHeight || 0));
 | 
					 | 
				
			||||||
export const iPhoneX = () => Platform.OS === 'ios' && (height === 812 || width === 812);
 | 
					 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,23 @@
 | 
				
			||||||
 | 
					import React, { createContext, useState } from 'react'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export const UserContext = createContext({});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export const UserContextProvider = ({ children }) => {
 | 
				
			||||||
 | 
					    const [user, setUser] = useState(null);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    const addUser = (user) => setUser(user);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    const removeUser = () => setUser(null);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    const value = {
 | 
				
			||||||
 | 
					        user,
 | 
				
			||||||
 | 
					        addUser,
 | 
				
			||||||
 | 
					        removeUser
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return (
 | 
				
			||||||
 | 
					        <UserContext.Provider value={value}>
 | 
				
			||||||
 | 
					            {children}
 | 
				
			||||||
 | 
					        </UserContext.Provider>
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,3 @@
 | 
				
			||||||
 | 
					export class API {
 | 
				
			||||||
 | 
					    static BASE_URL = "http://localhost:4000"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -1,71 +0,0 @@
 | 
				
			||||||
import { Block, Text, theme } from "galio-framework";
 | 
					 | 
				
			||||||
import { Image, ScrollView, StyleSheet } from "react-native";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import { DrawerItem as DrawerCustomItem } from "../components";
 | 
					 | 
				
			||||||
import Images from "../constants/Images";
 | 
					 | 
				
			||||||
import React from "react";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
function CustomDrawerContent({
 | 
					 | 
				
			||||||
  drawerPosition,
 | 
					 | 
				
			||||||
  navigation,
 | 
					 | 
				
			||||||
  profile,
 | 
					 | 
				
			||||||
  focused,
 | 
					 | 
				
			||||||
  state,
 | 
					 | 
				
			||||||
  ...rest
 | 
					 | 
				
			||||||
}) {
 | 
					 | 
				
			||||||
  const screens = ["Home", "Profile", "Account", "Elements", "Articles"];
 | 
					 | 
				
			||||||
  return (
 | 
					 | 
				
			||||||
    <Block
 | 
					 | 
				
			||||||
      style={styles.container}
 | 
					 | 
				
			||||||
      forceInset={{ top: "always", horizontal: "never" }}
 | 
					 | 
				
			||||||
    >
 | 
					 | 
				
			||||||
      <Block flex={0.06} style={styles.header}>
 | 
					 | 
				
			||||||
        <Image styles={styles.logo} source={Images.Logo} />
 | 
					 | 
				
			||||||
      </Block>
 | 
					 | 
				
			||||||
      <Block flex style={{ paddingLeft: 8, paddingRight: 14 }}>
 | 
					 | 
				
			||||||
        <ScrollView style={{ flex: 1 }} showsVerticalScrollIndicator={false}>
 | 
					 | 
				
			||||||
          {screens.map((item, index) => {
 | 
					 | 
				
			||||||
            return (
 | 
					 | 
				
			||||||
              <DrawerCustomItem
 | 
					 | 
				
			||||||
                title={item}
 | 
					 | 
				
			||||||
                key={index}
 | 
					 | 
				
			||||||
                navigation={navigation}
 | 
					 | 
				
			||||||
                focused={state.index === index ? true : false}
 | 
					 | 
				
			||||||
              />
 | 
					 | 
				
			||||||
            );
 | 
					 | 
				
			||||||
          })}
 | 
					 | 
				
			||||||
          <Block
 | 
					 | 
				
			||||||
            flex
 | 
					 | 
				
			||||||
            style={{ marginTop: 24, marginVertical: 8, paddingHorizontal: 8 }}
 | 
					 | 
				
			||||||
          >
 | 
					 | 
				
			||||||
            <Block
 | 
					 | 
				
			||||||
              style={{
 | 
					 | 
				
			||||||
                borderColor: "rgba(0,0,0,0.2)",
 | 
					 | 
				
			||||||
                width: "100%",
 | 
					 | 
				
			||||||
                borderWidth: StyleSheet.hairlineWidth,
 | 
					 | 
				
			||||||
              }}
 | 
					 | 
				
			||||||
            />
 | 
					 | 
				
			||||||
            <Text color="#8898AA" style={{ marginTop: 16, marginLeft: 8 }}>
 | 
					 | 
				
			||||||
              DOCUMENTATION
 | 
					 | 
				
			||||||
            </Text>
 | 
					 | 
				
			||||||
          </Block>
 | 
					 | 
				
			||||||
          <DrawerCustomItem title="Getting Started" navigation={navigation} />
 | 
					 | 
				
			||||||
        </ScrollView>
 | 
					 | 
				
			||||||
      </Block>
 | 
					 | 
				
			||||||
    </Block>
 | 
					 | 
				
			||||||
  );
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const styles = StyleSheet.create({
 | 
					 | 
				
			||||||
  container: {
 | 
					 | 
				
			||||||
    flex: 1,
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  header: {
 | 
					 | 
				
			||||||
    paddingHorizontal: 28,
 | 
					 | 
				
			||||||
    paddingBottom: theme.SIZES.BASE,
 | 
					 | 
				
			||||||
    paddingTop: theme.SIZES.BASE * 3,
 | 
					 | 
				
			||||||
    justifyContent: "center",
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
});
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export default CustomDrawerContent;
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,256 +0,0 @@
 | 
				
			||||||
import { Animated, Dimensions, Easing } from "react-native";
 | 
					 | 
				
			||||||
// header for screens
 | 
					 | 
				
			||||||
import { Header, Icon } from "../components";
 | 
					 | 
				
			||||||
import { argonTheme, tabs } from "../constants";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import Articles from "../screens/Articles";
 | 
					 | 
				
			||||||
import { Block } from "galio-framework";
 | 
					 | 
				
			||||||
// drawer
 | 
					 | 
				
			||||||
import CustomDrawerContent from "./Menu";
 | 
					 | 
				
			||||||
import Elements from "../screens/Elements";
 | 
					 | 
				
			||||||
// screens
 | 
					 | 
				
			||||||
import Home from "../screens/Home";
 | 
					 | 
				
			||||||
import Onboarding from "../screens/Onboarding";
 | 
					 | 
				
			||||||
import Pro from "../screens/Pro";
 | 
					 | 
				
			||||||
import Profile from "../screens/Profile";
 | 
					 | 
				
			||||||
import React from "react";
 | 
					 | 
				
			||||||
import Register from "../screens/Register";
 | 
					 | 
				
			||||||
import { createBottomTabNavigator } from "@react-navigation/bottom-tabs";
 | 
					 | 
				
			||||||
import { createDrawerNavigator } from "@react-navigation/drawer";
 | 
					 | 
				
			||||||
import { createStackNavigator } from "@react-navigation/stack";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const { width } = Dimensions.get("screen");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const Stack = createStackNavigator();
 | 
					 | 
				
			||||||
const Drawer = createDrawerNavigator();
 | 
					 | 
				
			||||||
const Tab = createBottomTabNavigator();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
function ElementsStack(props) {
 | 
					 | 
				
			||||||
  return (
 | 
					 | 
				
			||||||
    <Stack.Navigator
 | 
					 | 
				
			||||||
      screenOptions={{
 | 
					 | 
				
			||||||
        mode: "card",
 | 
					 | 
				
			||||||
        headerShown: false,
 | 
					 | 
				
			||||||
      }}
 | 
					 | 
				
			||||||
    >
 | 
					 | 
				
			||||||
      <Stack.Screen
 | 
					 | 
				
			||||||
        name="Elements"
 | 
					 | 
				
			||||||
        component={Elements}
 | 
					 | 
				
			||||||
        options={{
 | 
					 | 
				
			||||||
          header: ({ navigation, scene }) => (
 | 
					 | 
				
			||||||
            <Header title="Elements" navigation={navigation} scene={scene} />
 | 
					 | 
				
			||||||
          ),
 | 
					 | 
				
			||||||
          cardStyle: { backgroundColor: "#F8F9FE" },
 | 
					 | 
				
			||||||
        }}
 | 
					 | 
				
			||||||
      />
 | 
					 | 
				
			||||||
      <Stack.Screen
 | 
					 | 
				
			||||||
        name="Pro"
 | 
					 | 
				
			||||||
        component={Pro}
 | 
					 | 
				
			||||||
        options={{
 | 
					 | 
				
			||||||
          header: ({ navigation, scene }) => (
 | 
					 | 
				
			||||||
            <Header
 | 
					 | 
				
			||||||
              title=""
 | 
					 | 
				
			||||||
              back
 | 
					 | 
				
			||||||
              white
 | 
					 | 
				
			||||||
              transparent
 | 
					 | 
				
			||||||
              navigation={navigation}
 | 
					 | 
				
			||||||
              scene={scene}
 | 
					 | 
				
			||||||
            />
 | 
					 | 
				
			||||||
          ),
 | 
					 | 
				
			||||||
          headerTransparent: true,
 | 
					 | 
				
			||||||
        }}
 | 
					 | 
				
			||||||
      />
 | 
					 | 
				
			||||||
    </Stack.Navigator>
 | 
					 | 
				
			||||||
  );
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
function ArticlesStack(props) {
 | 
					 | 
				
			||||||
  return (
 | 
					 | 
				
			||||||
    <Stack.Navigator
 | 
					 | 
				
			||||||
      screenOptions={{
 | 
					 | 
				
			||||||
        mode: "card",
 | 
					 | 
				
			||||||
        headerShown: "screen",
 | 
					 | 
				
			||||||
      }}
 | 
					 | 
				
			||||||
    >
 | 
					 | 
				
			||||||
      <Stack.Screen
 | 
					 | 
				
			||||||
        name="Articles"
 | 
					 | 
				
			||||||
        component={Articles}
 | 
					 | 
				
			||||||
        options={{
 | 
					 | 
				
			||||||
          header: ({ navigation, scene }) => (
 | 
					 | 
				
			||||||
            <Header title="Articles" navigation={navigation} scene={scene} />
 | 
					 | 
				
			||||||
          ),
 | 
					 | 
				
			||||||
          cardStyle: { backgroundColor: "#F8F9FE" },
 | 
					 | 
				
			||||||
        }}
 | 
					 | 
				
			||||||
      />
 | 
					 | 
				
			||||||
      <Stack.Screen
 | 
					 | 
				
			||||||
        name="Pro"
 | 
					 | 
				
			||||||
        component={Pro}
 | 
					 | 
				
			||||||
        options={{
 | 
					 | 
				
			||||||
          header: ({ navigation, scene }) => (
 | 
					 | 
				
			||||||
            <Header
 | 
					 | 
				
			||||||
              title=""
 | 
					 | 
				
			||||||
              back
 | 
					 | 
				
			||||||
              white
 | 
					 | 
				
			||||||
              transparent
 | 
					 | 
				
			||||||
              navigation={navigation}
 | 
					 | 
				
			||||||
              scene={scene}
 | 
					 | 
				
			||||||
            />
 | 
					 | 
				
			||||||
          ),
 | 
					 | 
				
			||||||
          headerTransparent: true,
 | 
					 | 
				
			||||||
        }}
 | 
					 | 
				
			||||||
      />
 | 
					 | 
				
			||||||
    </Stack.Navigator>
 | 
					 | 
				
			||||||
  );
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
function ProfileStack(props) {
 | 
					 | 
				
			||||||
  return (
 | 
					 | 
				
			||||||
    <Stack.Navigator
 | 
					 | 
				
			||||||
      initialRouteName="Profile"
 | 
					 | 
				
			||||||
      screenOptions={{
 | 
					 | 
				
			||||||
        mode: "card",
 | 
					 | 
				
			||||||
        headerShown: "screen",
 | 
					 | 
				
			||||||
      }}
 | 
					 | 
				
			||||||
    >
 | 
					 | 
				
			||||||
      <Stack.Screen
 | 
					 | 
				
			||||||
        name="Profile"
 | 
					 | 
				
			||||||
        component={Profile}
 | 
					 | 
				
			||||||
        options={{
 | 
					 | 
				
			||||||
          header: ({ navigation, scene }) => (
 | 
					 | 
				
			||||||
            <Header
 | 
					 | 
				
			||||||
              transparent
 | 
					 | 
				
			||||||
              white
 | 
					 | 
				
			||||||
              title="Profile"
 | 
					 | 
				
			||||||
              navigation={navigation}
 | 
					 | 
				
			||||||
              scene={scene}
 | 
					 | 
				
			||||||
            />
 | 
					 | 
				
			||||||
          ),
 | 
					 | 
				
			||||||
          cardStyle: { backgroundColor: "#FFFFFF" },
 | 
					 | 
				
			||||||
          headerTransparent: true,
 | 
					 | 
				
			||||||
        }}
 | 
					 | 
				
			||||||
      />
 | 
					 | 
				
			||||||
      <Stack.Screen
 | 
					 | 
				
			||||||
        name="Pro"
 | 
					 | 
				
			||||||
        component={Pro}
 | 
					 | 
				
			||||||
        options={{
 | 
					 | 
				
			||||||
          header: ({ navigation, scene }) => (
 | 
					 | 
				
			||||||
            <Header
 | 
					 | 
				
			||||||
              title=""
 | 
					 | 
				
			||||||
              back
 | 
					 | 
				
			||||||
              white
 | 
					 | 
				
			||||||
              transparent
 | 
					 | 
				
			||||||
              navigation={navigation}
 | 
					 | 
				
			||||||
              scene={scene}
 | 
					 | 
				
			||||||
            />
 | 
					 | 
				
			||||||
          ),
 | 
					 | 
				
			||||||
          headerTransparent: true,
 | 
					 | 
				
			||||||
        }}
 | 
					 | 
				
			||||||
      />
 | 
					 | 
				
			||||||
    </Stack.Navigator>
 | 
					 | 
				
			||||||
  );
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
function HomeStack(props) {
 | 
					 | 
				
			||||||
  return (
 | 
					 | 
				
			||||||
    <Stack.Navigator
 | 
					 | 
				
			||||||
      screenOptions={{
 | 
					 | 
				
			||||||
        mode: "card",
 | 
					 | 
				
			||||||
        headerShown: "screen",
 | 
					 | 
				
			||||||
      }}
 | 
					 | 
				
			||||||
    >
 | 
					 | 
				
			||||||
      <Stack.Screen
 | 
					 | 
				
			||||||
        name="Home"
 | 
					 | 
				
			||||||
        component={Home}
 | 
					 | 
				
			||||||
        options={{
 | 
					 | 
				
			||||||
          header: ({ navigation, scene }) => (
 | 
					 | 
				
			||||||
            <Header
 | 
					 | 
				
			||||||
              title="Home"
 | 
					 | 
				
			||||||
              search
 | 
					 | 
				
			||||||
              options
 | 
					 | 
				
			||||||
              navigation={navigation}
 | 
					 | 
				
			||||||
              scene={scene}
 | 
					 | 
				
			||||||
            />
 | 
					 | 
				
			||||||
          ),
 | 
					 | 
				
			||||||
          cardStyle: { backgroundColor: "#F8F9FE" },
 | 
					 | 
				
			||||||
        }}
 | 
					 | 
				
			||||||
      />
 | 
					 | 
				
			||||||
      <Stack.Screen
 | 
					 | 
				
			||||||
        name="Pro"
 | 
					 | 
				
			||||||
        component={Pro}
 | 
					 | 
				
			||||||
        options={{
 | 
					 | 
				
			||||||
          header: ({ navigation, scene }) => (
 | 
					 | 
				
			||||||
            <Header
 | 
					 | 
				
			||||||
              title=""
 | 
					 | 
				
			||||||
              back
 | 
					 | 
				
			||||||
              white
 | 
					 | 
				
			||||||
              transparent
 | 
					 | 
				
			||||||
              navigation={navigation}
 | 
					 | 
				
			||||||
              scene={scene}
 | 
					 | 
				
			||||||
            />
 | 
					 | 
				
			||||||
          ),
 | 
					 | 
				
			||||||
          headerTransparent: true,
 | 
					 | 
				
			||||||
        }}
 | 
					 | 
				
			||||||
      />
 | 
					 | 
				
			||||||
    </Stack.Navigator>
 | 
					 | 
				
			||||||
  );
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export default function OnboardingStack(props) {
 | 
					 | 
				
			||||||
  return (
 | 
					 | 
				
			||||||
    <Stack.Navigator
 | 
					 | 
				
			||||||
      screenOptions={{
 | 
					 | 
				
			||||||
        mode: "card",
 | 
					 | 
				
			||||||
        headerShown: false,
 | 
					 | 
				
			||||||
      }}
 | 
					 | 
				
			||||||
    >
 | 
					 | 
				
			||||||
      <Stack.Screen
 | 
					 | 
				
			||||||
        name="Onboarding"
 | 
					 | 
				
			||||||
        component={Onboarding}
 | 
					 | 
				
			||||||
        option={{
 | 
					 | 
				
			||||||
          headerTransparent: true,
 | 
					 | 
				
			||||||
        }}
 | 
					 | 
				
			||||||
      />
 | 
					 | 
				
			||||||
      <Stack.Screen name="App" component={AppStack} />
 | 
					 | 
				
			||||||
    </Stack.Navigator>
 | 
					 | 
				
			||||||
  );
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
function AppStack(props) {
 | 
					 | 
				
			||||||
  return (
 | 
					 | 
				
			||||||
    <Drawer.Navigator
 | 
					 | 
				
			||||||
      style={{ flex: 1 }}
 | 
					 | 
				
			||||||
      drawerContent={(props) => <CustomDrawerContent {...props} />}
 | 
					 | 
				
			||||||
      drawerStyle={{
 | 
					 | 
				
			||||||
        backgroundColor: "white",
 | 
					 | 
				
			||||||
        width: width * 0.8,
 | 
					 | 
				
			||||||
      }}
 | 
					 | 
				
			||||||
      drawerContentOptions={{
 | 
					 | 
				
			||||||
        activeTintcolor: "white",
 | 
					 | 
				
			||||||
        inactiveTintColor: "#000",
 | 
					 | 
				
			||||||
        activeBackgroundColor: "transparent",
 | 
					 | 
				
			||||||
        itemStyle: {
 | 
					 | 
				
			||||||
          width: width * 0.75,
 | 
					 | 
				
			||||||
          backgroundColor: "transparent",
 | 
					 | 
				
			||||||
          paddingVertical: 16,
 | 
					 | 
				
			||||||
          paddingHorizonal: 12,
 | 
					 | 
				
			||||||
          justifyContent: "center",
 | 
					 | 
				
			||||||
          alignContent: "center",
 | 
					 | 
				
			||||||
          alignItems: "center",
 | 
					 | 
				
			||||||
          overflow: "hidden",
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        labelStyle: {
 | 
					 | 
				
			||||||
          fontSize: 18,
 | 
					 | 
				
			||||||
          marginLeft: 12,
 | 
					 | 
				
			||||||
          fontWeight: "normal",
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
      }}
 | 
					 | 
				
			||||||
      initialRouteName="Home"
 | 
					 | 
				
			||||||
    >
 | 
					 | 
				
			||||||
      <Drawer.Screen name="Home" component={HomeStack} />
 | 
					 | 
				
			||||||
      <Drawer.Screen name="Profile" component={ProfileStack} />
 | 
					 | 
				
			||||||
      <Drawer.Screen name="Account" component={Register} />
 | 
					 | 
				
			||||||
      <Drawer.Screen name="Elements" component={ElementsStack} />
 | 
					 | 
				
			||||||
      <Drawer.Screen name="Articles" component={ArticlesStack} />
 | 
					 | 
				
			||||||
    </Drawer.Navigator>
 | 
					 | 
				
			||||||
  );
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,7 +1,14 @@
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  "name": "mobile-ui",
 | 
					  "name": "my-app",
 | 
				
			||||||
  "version": "1.0.0",
 | 
					  "version": "1.0.0",
 | 
				
			||||||
  "main": "node_modules/expo/AppEntry.js",
 | 
					  "main": "node_modules/expo/AppEntry.js",
 | 
				
			||||||
 | 
					  "keywords": [
 | 
				
			||||||
 | 
					    "react",
 | 
				
			||||||
 | 
					    "expo",
 | 
				
			||||||
 | 
					    "template",
 | 
				
			||||||
 | 
					    "nativebase"
 | 
				
			||||||
 | 
					  ],
 | 
				
			||||||
 | 
					  "license": "MIT",
 | 
				
			||||||
  "scripts": {
 | 
					  "scripts": {
 | 
				
			||||||
    "start": "expo start",
 | 
					    "start": "expo start",
 | 
				
			||||||
    "android": "expo start --android",
 | 
					    "android": "expo start --android",
 | 
				
			||||||
| 
						 | 
					@ -11,29 +18,35 @@
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "dependencies": {
 | 
					  "dependencies": {
 | 
				
			||||||
    "@react-native-community/masked-view": "^0.1.11",
 | 
					    "@react-native-community/masked-view": "^0.1.11",
 | 
				
			||||||
 | 
					    "@react-navigation/bottom-tabs": "^6.3.2",
 | 
				
			||||||
    "@react-navigation/native": "^6.0.11",
 | 
					    "@react-navigation/native": "^6.0.11",
 | 
				
			||||||
    "expo": "~45.0.0",
 | 
					    "@react-navigation/native-stack": "^6.7.0",
 | 
				
			||||||
    "expo-cli": "^5.4.12",
 | 
					    "@react-navigation/stack": "^6.2.2",
 | 
				
			||||||
    "expo-status-bar": "~1.3.0",
 | 
					    "date-fns": "^2.29.2",
 | 
				
			||||||
    "galio-framework": "^0.8.0",
 | 
					    "expo": "^44.0.0",
 | 
				
			||||||
    "react": "17.0.2",
 | 
					    "expo-status-bar": "~1.2.0",
 | 
				
			||||||
    "react-dom": "17.0.2",
 | 
					    "native-base": "3.4.0",
 | 
				
			||||||
    "react-native": "0.68.2",
 | 
					    "prop-types": "^15.8.1",
 | 
				
			||||||
    "react-native-gesture-handler": "~2.2.1",
 | 
					    "react": "17.0.1",
 | 
				
			||||||
    "react-native-material-dropdown": "^0.11.1",
 | 
					    "react-dom": "17.0.1",
 | 
				
			||||||
    "react-native-reanimated": "~2.8.0",
 | 
					    "react-native": "0.64.3",
 | 
				
			||||||
    "react-native-safe-area-context": "4.2.4",
 | 
					    "react-native-gesture-handler": "~2.1.0",
 | 
				
			||||||
    "react-native-screens": "~3.11.1",
 | 
					    "react-native-reanimated": "~2.3.1",
 | 
				
			||||||
    "react-native-web": "0.17.7",
 | 
					    "react-native-safe-area-context": "3.3.2",
 | 
				
			||||||
    "react-navigation": "^4.4.4",
 | 
					    "react-native-screens": "~3.10.1",
 | 
				
			||||||
    "react-navigation-stack": "^2.10.4",
 | 
					    "react-native-simple-time-picker": "^1.3.11",
 | 
				
			||||||
    "sharp-cli": "^2.1.1"
 | 
					    "react-native-svg": "12.1.1",
 | 
				
			||||||
 | 
					    "react-native-table-component": "^1.2.2",
 | 
				
			||||||
 | 
					    "react-native-web": "0.17.1",
 | 
				
			||||||
 | 
					    "universal-cookie": "^4.0.4"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "devDependencies": {
 | 
					  "devDependencies": {
 | 
				
			||||||
    "@babel/core": "^7.12.9",
 | 
					    "@babel/core": "^7.12.9"
 | 
				
			||||||
    "@types/react": "~17.0.21",
 | 
					 | 
				
			||||||
    "@types/react-native": "~0.66.13",
 | 
					 | 
				
			||||||
    "typescript": "~4.3.5"
 | 
					 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
					  "bugs": {
 | 
				
			||||||
 | 
					    "url": "https://github.com/GeekyAnts/nativebase-templates/issues"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "homepage": "https://github.com/GeekyAnts/nativebase-templates#readme",
 | 
				
			||||||
 | 
					  "author": "Aditya Jamuar",
 | 
				
			||||||
  "private": true
 | 
					  "private": true
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,252 +0,0 @@
 | 
				
			||||||
//galio
 | 
					 | 
				
			||||||
import { Block, Text, theme } from "galio-framework";
 | 
					 | 
				
			||||||
import {
 | 
					 | 
				
			||||||
  Dimensions,
 | 
					 | 
				
			||||||
  Image,
 | 
					 | 
				
			||||||
  ImageBackground,
 | 
					 | 
				
			||||||
  ScrollView,
 | 
					 | 
				
			||||||
  StyleSheet,
 | 
					 | 
				
			||||||
  TouchableWithoutFeedback,
 | 
					 | 
				
			||||||
} from "react-native";
 | 
					 | 
				
			||||||
//argon
 | 
					 | 
				
			||||||
import { Images, argonTheme, articles } from "../constants/";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import { Card } from "../components/";
 | 
					 | 
				
			||||||
import React from "react";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const { width } = Dimensions.get("screen");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const thumbMeasure = (width - 48 - 32) / 3;
 | 
					 | 
				
			||||||
const cardWidth = width - theme.SIZES.BASE * 2;
 | 
					 | 
				
			||||||
const categories = [
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    title: "Music Album",
 | 
					 | 
				
			||||||
    description:
 | 
					 | 
				
			||||||
      "Rock music is a genre of popular music. It developed during and after the 1960s in the United Kingdom.",
 | 
					 | 
				
			||||||
    image:
 | 
					 | 
				
			||||||
      "https://images.unsplash.com/photo-1470225620780-dba8ba36b745?fit=crop&w=840&q=80",
 | 
					 | 
				
			||||||
    price: "$125",
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    title: "Events",
 | 
					 | 
				
			||||||
    description:
 | 
					 | 
				
			||||||
      "Rock music is a genre of popular music. It developed during and after the 1960s in the United Kingdom.",
 | 
					 | 
				
			||||||
    image:
 | 
					 | 
				
			||||||
      "https://images.unsplash.com/photo-1543747579-795b9c2c3ada?fit=crop&w=840&q=80",
 | 
					 | 
				
			||||||
    price: "$35",
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
class Articles extends React.Component {
 | 
					 | 
				
			||||||
  renderProduct = (item, index) => {
 | 
					 | 
				
			||||||
    const { navigation } = this.props;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return (
 | 
					 | 
				
			||||||
      <TouchableWithoutFeedback
 | 
					 | 
				
			||||||
        style={{ zIndex: 3 }}
 | 
					 | 
				
			||||||
        key={`product-${item.title}`}
 | 
					 | 
				
			||||||
        onPress={() => navigation.navigate("Pro", { product: item })}
 | 
					 | 
				
			||||||
      >
 | 
					 | 
				
			||||||
        <Block center style={styles.productItem}>
 | 
					 | 
				
			||||||
          <Image
 | 
					 | 
				
			||||||
            resizeMode="cover"
 | 
					 | 
				
			||||||
            style={styles.productImage}
 | 
					 | 
				
			||||||
            source={{ uri: item.image }}
 | 
					 | 
				
			||||||
          />
 | 
					 | 
				
			||||||
          <Block center style={{ paddingHorizontal: theme.SIZES.BASE }}>
 | 
					 | 
				
			||||||
            <Text
 | 
					 | 
				
			||||||
              center
 | 
					 | 
				
			||||||
              size={16}
 | 
					 | 
				
			||||||
              color={theme.COLORS.MUTED}
 | 
					 | 
				
			||||||
              style={styles.productPrice}
 | 
					 | 
				
			||||||
            >
 | 
					 | 
				
			||||||
              {item.price}
 | 
					 | 
				
			||||||
            </Text>
 | 
					 | 
				
			||||||
            <Text center size={34}>
 | 
					 | 
				
			||||||
              {item.title}
 | 
					 | 
				
			||||||
            </Text>
 | 
					 | 
				
			||||||
            <Text
 | 
					 | 
				
			||||||
              center
 | 
					 | 
				
			||||||
              size={16}
 | 
					 | 
				
			||||||
              color={theme.COLORS.MUTED}
 | 
					 | 
				
			||||||
              style={styles.productDescription}
 | 
					 | 
				
			||||||
            >
 | 
					 | 
				
			||||||
              {item.description}
 | 
					 | 
				
			||||||
            </Text>
 | 
					 | 
				
			||||||
          </Block>
 | 
					 | 
				
			||||||
        </Block>
 | 
					 | 
				
			||||||
      </TouchableWithoutFeedback>
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  renderCards = () => {
 | 
					 | 
				
			||||||
    return (
 | 
					 | 
				
			||||||
      <Block flex style={styles.group}>
 | 
					 | 
				
			||||||
        <Text bold size={16} style={styles.title}>
 | 
					 | 
				
			||||||
          Cards
 | 
					 | 
				
			||||||
        </Text>
 | 
					 | 
				
			||||||
        <Block flex>
 | 
					 | 
				
			||||||
          <Block style={{ paddingHorizontal: theme.SIZES.BASE }}>
 | 
					 | 
				
			||||||
            <Card item={articles[0]} horizontal />
 | 
					 | 
				
			||||||
            <Block flex row>
 | 
					 | 
				
			||||||
              <Card
 | 
					 | 
				
			||||||
                item={articles[1]}
 | 
					 | 
				
			||||||
                style={{ marginRight: theme.SIZES.BASE }}
 | 
					 | 
				
			||||||
              />
 | 
					 | 
				
			||||||
              <Card item={articles[2]} />
 | 
					 | 
				
			||||||
            </Block>
 | 
					 | 
				
			||||||
            <Card item={articles[4]} full />
 | 
					 | 
				
			||||||
            <Block flex card shadow style={styles.category}>
 | 
					 | 
				
			||||||
              <ImageBackground
 | 
					 | 
				
			||||||
                source={{ uri: Images.Products["View article"] }}
 | 
					 | 
				
			||||||
                style={[
 | 
					 | 
				
			||||||
                  styles.imageBlock,
 | 
					 | 
				
			||||||
                  { width: width - theme.SIZES.BASE * 2, height: 252 },
 | 
					 | 
				
			||||||
                ]}
 | 
					 | 
				
			||||||
                imageStyle={{
 | 
					 | 
				
			||||||
                  width: width - theme.SIZES.BASE * 2,
 | 
					 | 
				
			||||||
                  height: 252,
 | 
					 | 
				
			||||||
                }}
 | 
					 | 
				
			||||||
              >
 | 
					 | 
				
			||||||
                <Block style={styles.categoryTitle}>
 | 
					 | 
				
			||||||
                  <Text size={18} bold color={theme.COLORS.WHITE}>
 | 
					 | 
				
			||||||
                    View article
 | 
					 | 
				
			||||||
                  </Text>
 | 
					 | 
				
			||||||
                </Block>
 | 
					 | 
				
			||||||
              </ImageBackground>
 | 
					 | 
				
			||||||
            </Block>
 | 
					 | 
				
			||||||
          </Block>
 | 
					 | 
				
			||||||
          <Block flex style={{ marginTop: theme.SIZES.BASE / 2 }}>
 | 
					 | 
				
			||||||
            <ScrollView
 | 
					 | 
				
			||||||
              horizontal={true}
 | 
					 | 
				
			||||||
              pagingEnabled={true}
 | 
					 | 
				
			||||||
              decelerationRate={0}
 | 
					 | 
				
			||||||
              scrollEventThrottle={16}
 | 
					 | 
				
			||||||
              snapToAlignment="center"
 | 
					 | 
				
			||||||
              showsHorizontalScrollIndicator={false}
 | 
					 | 
				
			||||||
              snapToInterval={cardWidth + theme.SIZES.BASE * 0.375}
 | 
					 | 
				
			||||||
              contentContainerStyle={{
 | 
					 | 
				
			||||||
                paddingHorizontal: theme.SIZES.BASE / 2,
 | 
					 | 
				
			||||||
              }}
 | 
					 | 
				
			||||||
            >
 | 
					 | 
				
			||||||
              {categories &&
 | 
					 | 
				
			||||||
                categories.map((item, index) =>
 | 
					 | 
				
			||||||
                  this.renderProduct(item, index)
 | 
					 | 
				
			||||||
                )}
 | 
					 | 
				
			||||||
            </ScrollView>
 | 
					 | 
				
			||||||
          </Block>
 | 
					 | 
				
			||||||
        </Block>
 | 
					 | 
				
			||||||
      </Block>
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  renderAlbum = () => {
 | 
					 | 
				
			||||||
    const { navigation } = this.props;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return (
 | 
					 | 
				
			||||||
      <Block
 | 
					 | 
				
			||||||
        flex
 | 
					 | 
				
			||||||
        style={[styles.group, { paddingBottom: theme.SIZES.BASE * 5 }]}
 | 
					 | 
				
			||||||
      >
 | 
					 | 
				
			||||||
        <Text bold size={16} style={styles.title}>
 | 
					 | 
				
			||||||
          Album
 | 
					 | 
				
			||||||
        </Text>
 | 
					 | 
				
			||||||
        <Block style={{ marginHorizontal: theme.SIZES.BASE * 2 }}>
 | 
					 | 
				
			||||||
          <Block flex right>
 | 
					 | 
				
			||||||
            <Text
 | 
					 | 
				
			||||||
              size={12}
 | 
					 | 
				
			||||||
              color={theme.COLORS.PRIMARY}
 | 
					 | 
				
			||||||
              onPress={() => navigation.navigate("Home")}
 | 
					 | 
				
			||||||
            >
 | 
					 | 
				
			||||||
              View All
 | 
					 | 
				
			||||||
            </Text>
 | 
					 | 
				
			||||||
          </Block>
 | 
					 | 
				
			||||||
          <Block
 | 
					 | 
				
			||||||
            row
 | 
					 | 
				
			||||||
            space="between"
 | 
					 | 
				
			||||||
            style={{ marginTop: theme.SIZES.BASE, flexWrap: "wrap" }}
 | 
					 | 
				
			||||||
          >
 | 
					 | 
				
			||||||
            {Images.Viewed.map((img, index) => (
 | 
					 | 
				
			||||||
              <Block key={`viewed-${img}`} style={styles.shadow}>
 | 
					 | 
				
			||||||
                <Image
 | 
					 | 
				
			||||||
                  resizeMode="cover"
 | 
					 | 
				
			||||||
                  source={{ uri: img }}
 | 
					 | 
				
			||||||
                  style={styles.albumThumb}
 | 
					 | 
				
			||||||
                />
 | 
					 | 
				
			||||||
              </Block>
 | 
					 | 
				
			||||||
            ))}
 | 
					 | 
				
			||||||
          </Block>
 | 
					 | 
				
			||||||
        </Block>
 | 
					 | 
				
			||||||
      </Block>
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  render() {
 | 
					 | 
				
			||||||
    return (
 | 
					 | 
				
			||||||
      <Block flex center>
 | 
					 | 
				
			||||||
        <ScrollView showsVerticalScrollIndicator={false}>
 | 
					 | 
				
			||||||
          {this.renderCards()}
 | 
					 | 
				
			||||||
          {this.renderAlbum()}
 | 
					 | 
				
			||||||
        </ScrollView>
 | 
					 | 
				
			||||||
      </Block>
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const styles = StyleSheet.create({
 | 
					 | 
				
			||||||
  title: {
 | 
					 | 
				
			||||||
    paddingBottom: theme.SIZES.BASE,
 | 
					 | 
				
			||||||
    paddingHorizontal: theme.SIZES.BASE * 2,
 | 
					 | 
				
			||||||
    marginTop: 22,
 | 
					 | 
				
			||||||
    color: argonTheme.COLORS.HEADER,
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  group: {
 | 
					 | 
				
			||||||
    paddingTop: theme.SIZES.BASE,
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  albumThumb: {
 | 
					 | 
				
			||||||
    borderRadius: 4,
 | 
					 | 
				
			||||||
    marginVertical: 4,
 | 
					 | 
				
			||||||
    alignSelf: "center",
 | 
					 | 
				
			||||||
    width: thumbMeasure,
 | 
					 | 
				
			||||||
    height: thumbMeasure,
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  category: {
 | 
					 | 
				
			||||||
    backgroundColor: theme.COLORS.WHITE,
 | 
					 | 
				
			||||||
    marginVertical: theme.SIZES.BASE / 2,
 | 
					 | 
				
			||||||
    borderWidth: 0,
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  categoryTitle: {
 | 
					 | 
				
			||||||
    height: "100%",
 | 
					 | 
				
			||||||
    paddingHorizontal: theme.SIZES.BASE,
 | 
					 | 
				
			||||||
    backgroundColor: "rgba(0, 0, 0, 0.5)",
 | 
					 | 
				
			||||||
    justifyContent: "center",
 | 
					 | 
				
			||||||
    alignItems: "center",
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  imageBlock: {
 | 
					 | 
				
			||||||
    overflow: "hidden",
 | 
					 | 
				
			||||||
    borderRadius: 4,
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  productItem: {
 | 
					 | 
				
			||||||
    width: cardWidth - theme.SIZES.BASE * 2,
 | 
					 | 
				
			||||||
    marginHorizontal: theme.SIZES.BASE,
 | 
					 | 
				
			||||||
    shadowColor: "black",
 | 
					 | 
				
			||||||
    shadowOffset: { width: 0, height: 7 },
 | 
					 | 
				
			||||||
    shadowRadius: 10,
 | 
					 | 
				
			||||||
    shadowOpacity: 0.2,
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  productImage: {
 | 
					 | 
				
			||||||
    width: cardWidth - theme.SIZES.BASE,
 | 
					 | 
				
			||||||
    height: cardWidth - theme.SIZES.BASE,
 | 
					 | 
				
			||||||
    borderRadius: 3,
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  productPrice: {
 | 
					 | 
				
			||||||
    paddingTop: theme.SIZES.BASE,
 | 
					 | 
				
			||||||
    paddingBottom: theme.SIZES.BASE / 2,
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  productDescription: {
 | 
					 | 
				
			||||||
    paddingTop: theme.SIZES.BASE,
 | 
					 | 
				
			||||||
    // paddingBottom: theme.SIZES.BASE * 2,
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
});
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export default Articles;
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,487 +0,0 @@
 | 
				
			||||||
// Galio components
 | 
					 | 
				
			||||||
import { Block, Button as GaButton, Text, theme } from "galio-framework";
 | 
					 | 
				
			||||||
import { Button, Header, Icon, Input, Select, Switch } from "../components/";
 | 
					 | 
				
			||||||
import {
 | 
					 | 
				
			||||||
  Dimensions,
 | 
					 | 
				
			||||||
  ScrollView,
 | 
					 | 
				
			||||||
  StyleSheet,
 | 
					 | 
				
			||||||
  TouchableOpacity,
 | 
					 | 
				
			||||||
} from "react-native";
 | 
					 | 
				
			||||||
// Argon themed components
 | 
					 | 
				
			||||||
import { argonTheme, tabs } from "../constants/";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import React from "react";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const { width } = Dimensions.get("screen");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
class Elements extends React.Component {
 | 
					 | 
				
			||||||
  state = {
 | 
					 | 
				
			||||||
    "switch-1": true,
 | 
					 | 
				
			||||||
    "switch-2": false,
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  toggleSwitch = (switchId) =>
 | 
					 | 
				
			||||||
    this.setState({ [switchId]: !this.state[switchId] });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  renderButtons = () => {
 | 
					 | 
				
			||||||
    return (
 | 
					 | 
				
			||||||
      <Block flex>
 | 
					 | 
				
			||||||
        <Text bold size={16} style={styles.title}>
 | 
					 | 
				
			||||||
          Buttons
 | 
					 | 
				
			||||||
        </Text>
 | 
					 | 
				
			||||||
        <Block style={{ paddingHorizontal: theme.SIZES.BASE }}>
 | 
					 | 
				
			||||||
          <Block center>
 | 
					 | 
				
			||||||
            <Button color="default" style={styles.button}>
 | 
					 | 
				
			||||||
              DEFAULT
 | 
					 | 
				
			||||||
            </Button>
 | 
					 | 
				
			||||||
          </Block>
 | 
					 | 
				
			||||||
          <Block center>
 | 
					 | 
				
			||||||
            <Button
 | 
					 | 
				
			||||||
              color="secondary"
 | 
					 | 
				
			||||||
              textStyle={{ color: "black", fontSize: 12, fontWeight: "700" }}
 | 
					 | 
				
			||||||
              style={styles.button}
 | 
					 | 
				
			||||||
            >
 | 
					 | 
				
			||||||
              SECONDARY
 | 
					 | 
				
			||||||
            </Button>
 | 
					 | 
				
			||||||
          </Block>
 | 
					 | 
				
			||||||
          <Block center>
 | 
					 | 
				
			||||||
            <Button style={styles.button}>PRIMARY</Button>
 | 
					 | 
				
			||||||
          </Block>
 | 
					 | 
				
			||||||
          <Block center>
 | 
					 | 
				
			||||||
            <Button color="info" style={styles.button}>
 | 
					 | 
				
			||||||
              INFO
 | 
					 | 
				
			||||||
            </Button>
 | 
					 | 
				
			||||||
          </Block>
 | 
					 | 
				
			||||||
          <Block center>
 | 
					 | 
				
			||||||
            <Button color="success" style={styles.button}>
 | 
					 | 
				
			||||||
              SUCCESS
 | 
					 | 
				
			||||||
            </Button>
 | 
					 | 
				
			||||||
          </Block>
 | 
					 | 
				
			||||||
          <Block center>
 | 
					 | 
				
			||||||
            <Button color="warning" style={styles.button}>
 | 
					 | 
				
			||||||
              WARNING
 | 
					 | 
				
			||||||
            </Button>
 | 
					 | 
				
			||||||
          </Block>
 | 
					 | 
				
			||||||
          <Block center>
 | 
					 | 
				
			||||||
            <Button color="error" style={styles.button}>
 | 
					 | 
				
			||||||
              ERROR
 | 
					 | 
				
			||||||
            </Button>
 | 
					 | 
				
			||||||
          </Block>
 | 
					 | 
				
			||||||
          <Block row space="evenly">
 | 
					 | 
				
			||||||
            <Block flex left style={{ marginTop: 8 }}>
 | 
					 | 
				
			||||||
              <Select
 | 
					 | 
				
			||||||
                defaultIndex={1}
 | 
					 | 
				
			||||||
                options={["01", "02", "03", "04", "05"]}
 | 
					 | 
				
			||||||
              />
 | 
					 | 
				
			||||||
            </Block>
 | 
					 | 
				
			||||||
            <Block flex center>
 | 
					 | 
				
			||||||
              <Button small center color="default" style={styles.optionsButton}>
 | 
					 | 
				
			||||||
                DELETE
 | 
					 | 
				
			||||||
              </Button>
 | 
					 | 
				
			||||||
            </Block>
 | 
					 | 
				
			||||||
            <Block flex={1.25} right>
 | 
					 | 
				
			||||||
              <Button center color="default" style={styles.optionsButton}>
 | 
					 | 
				
			||||||
                SAVE FOR LATER
 | 
					 | 
				
			||||||
              </Button>
 | 
					 | 
				
			||||||
            </Block>
 | 
					 | 
				
			||||||
          </Block>
 | 
					 | 
				
			||||||
        </Block>
 | 
					 | 
				
			||||||
      </Block>
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  renderText = () => {
 | 
					 | 
				
			||||||
    return (
 | 
					 | 
				
			||||||
      <Block flex style={styles.group}>
 | 
					 | 
				
			||||||
        <Text bold size={16} style={styles.title}>
 | 
					 | 
				
			||||||
          Typography
 | 
					 | 
				
			||||||
        </Text>
 | 
					 | 
				
			||||||
        <Block style={{ paddingHorizontal: theme.SIZES.BASE }}>
 | 
					 | 
				
			||||||
          <Text
 | 
					 | 
				
			||||||
            h1
 | 
					 | 
				
			||||||
            style={{ marginBottom: theme.SIZES.BASE / 2 }}
 | 
					 | 
				
			||||||
            color={argonTheme.COLORS.DEFAULT}
 | 
					 | 
				
			||||||
          >
 | 
					 | 
				
			||||||
            Heading 1
 | 
					 | 
				
			||||||
          </Text>
 | 
					 | 
				
			||||||
          <Text
 | 
					 | 
				
			||||||
            h2
 | 
					 | 
				
			||||||
            style={{ marginBottom: theme.SIZES.BASE / 2 }}
 | 
					 | 
				
			||||||
            color={argonTheme.COLORS.DEFAULT}
 | 
					 | 
				
			||||||
          >
 | 
					 | 
				
			||||||
            Heading 2
 | 
					 | 
				
			||||||
          </Text>
 | 
					 | 
				
			||||||
          <Text
 | 
					 | 
				
			||||||
            h3
 | 
					 | 
				
			||||||
            style={{ marginBottom: theme.SIZES.BASE / 2 }}
 | 
					 | 
				
			||||||
            color={argonTheme.COLORS.DEFAULT}
 | 
					 | 
				
			||||||
          >
 | 
					 | 
				
			||||||
            Heading 3
 | 
					 | 
				
			||||||
          </Text>
 | 
					 | 
				
			||||||
          <Text
 | 
					 | 
				
			||||||
            h4
 | 
					 | 
				
			||||||
            style={{ marginBottom: theme.SIZES.BASE / 2 }}
 | 
					 | 
				
			||||||
            color={argonTheme.COLORS.DEFAULT}
 | 
					 | 
				
			||||||
          >
 | 
					 | 
				
			||||||
            Heading 4
 | 
					 | 
				
			||||||
          </Text>
 | 
					 | 
				
			||||||
          <Text
 | 
					 | 
				
			||||||
            h5
 | 
					 | 
				
			||||||
            style={{ marginBottom: theme.SIZES.BASE / 2 }}
 | 
					 | 
				
			||||||
            color={argonTheme.COLORS.DEFAULT}
 | 
					 | 
				
			||||||
          >
 | 
					 | 
				
			||||||
            Heading 5
 | 
					 | 
				
			||||||
          </Text>
 | 
					 | 
				
			||||||
          <Text
 | 
					 | 
				
			||||||
            p
 | 
					 | 
				
			||||||
            style={{ marginBottom: theme.SIZES.BASE / 2 }}
 | 
					 | 
				
			||||||
            color={argonTheme.COLORS.DEFAULT}
 | 
					 | 
				
			||||||
          >
 | 
					 | 
				
			||||||
            Paragraph
 | 
					 | 
				
			||||||
          </Text>
 | 
					 | 
				
			||||||
          <Text muted>This is a muted paragraph.</Text>
 | 
					 | 
				
			||||||
        </Block>
 | 
					 | 
				
			||||||
      </Block>
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  renderInputs = () => {
 | 
					 | 
				
			||||||
    return (
 | 
					 | 
				
			||||||
      <Block flex style={styles.group}>
 | 
					 | 
				
			||||||
        <Text bold size={16} style={styles.title}>
 | 
					 | 
				
			||||||
          Inputs
 | 
					 | 
				
			||||||
        </Text>
 | 
					 | 
				
			||||||
        <Block style={{ paddingHorizontal: theme.SIZES.BASE }}>
 | 
					 | 
				
			||||||
          <Input right placeholder="Regular" iconContent={<Block />} />
 | 
					 | 
				
			||||||
        </Block>
 | 
					 | 
				
			||||||
        <Block style={{ paddingHorizontal: theme.SIZES.BASE }}>
 | 
					 | 
				
			||||||
          <Input
 | 
					 | 
				
			||||||
            right
 | 
					 | 
				
			||||||
            placeholder="Regular Custom"
 | 
					 | 
				
			||||||
            style={{
 | 
					 | 
				
			||||||
              borderColor: argonTheme.COLORS.INFO,
 | 
					 | 
				
			||||||
              borderRadius: 4,
 | 
					 | 
				
			||||||
              backgroundColor: "#fff",
 | 
					 | 
				
			||||||
            }}
 | 
					 | 
				
			||||||
            iconContent={<Block />}
 | 
					 | 
				
			||||||
          />
 | 
					 | 
				
			||||||
        </Block>
 | 
					 | 
				
			||||||
        <Block style={{ paddingHorizontal: theme.SIZES.BASE }}>
 | 
					 | 
				
			||||||
          <Input
 | 
					 | 
				
			||||||
            placeholder="Icon left"
 | 
					 | 
				
			||||||
            iconContent={
 | 
					 | 
				
			||||||
              <Icon
 | 
					 | 
				
			||||||
                size={11}
 | 
					 | 
				
			||||||
                style={{ marginRight: 10 }}
 | 
					 | 
				
			||||||
                color={argonTheme.COLORS.ICON}
 | 
					 | 
				
			||||||
                name="search-zoom-in"
 | 
					 | 
				
			||||||
                family="ArgonExtra"
 | 
					 | 
				
			||||||
              />
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
          />
 | 
					 | 
				
			||||||
        </Block>
 | 
					 | 
				
			||||||
        <Block style={{ paddingHorizontal: theme.SIZES.BASE }}>
 | 
					 | 
				
			||||||
          <Input
 | 
					 | 
				
			||||||
            right
 | 
					 | 
				
			||||||
            placeholder="Icon Right"
 | 
					 | 
				
			||||||
            iconContent={
 | 
					 | 
				
			||||||
              <Icon
 | 
					 | 
				
			||||||
                size={11}
 | 
					 | 
				
			||||||
                color={argonTheme.COLORS.ICON}
 | 
					 | 
				
			||||||
                name="search-zoom-in"
 | 
					 | 
				
			||||||
                family="ArgonExtra"
 | 
					 | 
				
			||||||
              />
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
          />
 | 
					 | 
				
			||||||
        </Block>
 | 
					 | 
				
			||||||
        <Block style={{ paddingHorizontal: theme.SIZES.BASE }}>
 | 
					 | 
				
			||||||
          <Input
 | 
					 | 
				
			||||||
            success
 | 
					 | 
				
			||||||
            right
 | 
					 | 
				
			||||||
            placeholder="Success"
 | 
					 | 
				
			||||||
            iconContent={
 | 
					 | 
				
			||||||
              <Block
 | 
					 | 
				
			||||||
                middle
 | 
					 | 
				
			||||||
                style={{
 | 
					 | 
				
			||||||
                  width: 20,
 | 
					 | 
				
			||||||
                  height: 20,
 | 
					 | 
				
			||||||
                  borderRadius: 10,
 | 
					 | 
				
			||||||
                  backgroundColor: argonTheme.COLORS.INPUT_SUCCESS,
 | 
					 | 
				
			||||||
                }}
 | 
					 | 
				
			||||||
              >
 | 
					 | 
				
			||||||
                <Icon
 | 
					 | 
				
			||||||
                  size={11}
 | 
					 | 
				
			||||||
                  color={argonTheme.COLORS.ICON}
 | 
					 | 
				
			||||||
                  name="g-check"
 | 
					 | 
				
			||||||
                  family="ArgonExtra"
 | 
					 | 
				
			||||||
                />
 | 
					 | 
				
			||||||
              </Block>
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
          />
 | 
					 | 
				
			||||||
        </Block>
 | 
					 | 
				
			||||||
        <Block style={{ paddingHorizontal: theme.SIZES.BASE }}>
 | 
					 | 
				
			||||||
          <Input
 | 
					 | 
				
			||||||
            error
 | 
					 | 
				
			||||||
            right
 | 
					 | 
				
			||||||
            placeholder="Error Input"
 | 
					 | 
				
			||||||
            iconContent={
 | 
					 | 
				
			||||||
              <Block
 | 
					 | 
				
			||||||
                middle
 | 
					 | 
				
			||||||
                style={{
 | 
					 | 
				
			||||||
                  width: 20,
 | 
					 | 
				
			||||||
                  height: 20,
 | 
					 | 
				
			||||||
                  borderRadius: 10,
 | 
					 | 
				
			||||||
                  backgroundColor: argonTheme.COLORS.INPUT_ERROR,
 | 
					 | 
				
			||||||
                }}
 | 
					 | 
				
			||||||
              >
 | 
					 | 
				
			||||||
                <Icon
 | 
					 | 
				
			||||||
                  size={11}
 | 
					 | 
				
			||||||
                  color={argonTheme.COLORS.ICON}
 | 
					 | 
				
			||||||
                  name="support"
 | 
					 | 
				
			||||||
                  family="ArgonExtra"
 | 
					 | 
				
			||||||
                />
 | 
					 | 
				
			||||||
              </Block>
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
          />
 | 
					 | 
				
			||||||
        </Block>
 | 
					 | 
				
			||||||
      </Block>
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  renderSwitches = () => {
 | 
					 | 
				
			||||||
    return (
 | 
					 | 
				
			||||||
      <Block flex style={styles.group}>
 | 
					 | 
				
			||||||
        <Text bold size={16} style={styles.title}>
 | 
					 | 
				
			||||||
          Switches
 | 
					 | 
				
			||||||
        </Text>
 | 
					 | 
				
			||||||
        <Block style={{ paddingHorizontal: theme.SIZES.BASE }}>
 | 
					 | 
				
			||||||
          <Block
 | 
					 | 
				
			||||||
            row
 | 
					 | 
				
			||||||
            middle
 | 
					 | 
				
			||||||
            space="between"
 | 
					 | 
				
			||||||
            style={{ marginBottom: theme.SIZES.BASE }}
 | 
					 | 
				
			||||||
          >
 | 
					 | 
				
			||||||
            <Text size={14}>Switch is ON</Text>
 | 
					 | 
				
			||||||
            <Switch
 | 
					 | 
				
			||||||
              value={this.state["switch-1"]}
 | 
					 | 
				
			||||||
              onValueChange={() => this.toggleSwitch("switch-1")}
 | 
					 | 
				
			||||||
            />
 | 
					 | 
				
			||||||
          </Block>
 | 
					 | 
				
			||||||
          <Block row middle space="between">
 | 
					 | 
				
			||||||
            <Text size={14}>Switch is OFF</Text>
 | 
					 | 
				
			||||||
            <Switch
 | 
					 | 
				
			||||||
              value={this.state["switch-2"]}
 | 
					 | 
				
			||||||
              onValueChange={() => this.toggleSwitch("switch-2")}
 | 
					 | 
				
			||||||
            />
 | 
					 | 
				
			||||||
          </Block>
 | 
					 | 
				
			||||||
        </Block>
 | 
					 | 
				
			||||||
      </Block>
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  renderTableCell = () => {
 | 
					 | 
				
			||||||
    const { navigation } = this.props;
 | 
					 | 
				
			||||||
    return (
 | 
					 | 
				
			||||||
      <Block flex style={styles.group}>
 | 
					 | 
				
			||||||
        <Text bold size={16} style={styles.title}>
 | 
					 | 
				
			||||||
          Table Cell
 | 
					 | 
				
			||||||
        </Text>
 | 
					 | 
				
			||||||
        <Block style={{ paddingHorizontal: theme.SIZES.BASE }}>
 | 
					 | 
				
			||||||
          <Block style={styles.rows}>
 | 
					 | 
				
			||||||
            <TouchableOpacity onPress={() => navigation.navigate("Pro")}>
 | 
					 | 
				
			||||||
              <Block row middle space="between" style={{ paddingTop: 7 }}>
 | 
					 | 
				
			||||||
                <Text size={14}>Manage Options</Text>
 | 
					 | 
				
			||||||
                <Icon
 | 
					 | 
				
			||||||
                  name="chevron-right"
 | 
					 | 
				
			||||||
                  family="entypo"
 | 
					 | 
				
			||||||
                  style={{ paddingRight: 5 }}
 | 
					 | 
				
			||||||
                />
 | 
					 | 
				
			||||||
              </Block>
 | 
					 | 
				
			||||||
            </TouchableOpacity>
 | 
					 | 
				
			||||||
          </Block>
 | 
					 | 
				
			||||||
        </Block>
 | 
					 | 
				
			||||||
      </Block>
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  renderSocial = () => {
 | 
					 | 
				
			||||||
    return (
 | 
					 | 
				
			||||||
      <Block flex style={styles.group}>
 | 
					 | 
				
			||||||
        <Text bold size={16} style={styles.title}>
 | 
					 | 
				
			||||||
          Social
 | 
					 | 
				
			||||||
        </Text>
 | 
					 | 
				
			||||||
        <Block style={{ paddingHorizontal: theme.SIZES.BASE }}>
 | 
					 | 
				
			||||||
          <Block row center space="between">
 | 
					 | 
				
			||||||
            <Block flex middle right>
 | 
					 | 
				
			||||||
              <GaButton
 | 
					 | 
				
			||||||
                round
 | 
					 | 
				
			||||||
                onlyIcon
 | 
					 | 
				
			||||||
                shadowless
 | 
					 | 
				
			||||||
                icon="facebook"
 | 
					 | 
				
			||||||
                iconFamily="Font-Awesome"
 | 
					 | 
				
			||||||
                iconColor={theme.COLORS.WHITE}
 | 
					 | 
				
			||||||
                iconSize={theme.SIZES.BASE * 1.625}
 | 
					 | 
				
			||||||
                color={theme.COLORS.FACEBOOK}
 | 
					 | 
				
			||||||
                style={[styles.social, styles.shadow]}
 | 
					 | 
				
			||||||
              />
 | 
					 | 
				
			||||||
            </Block>
 | 
					 | 
				
			||||||
            <Block flex middle center>
 | 
					 | 
				
			||||||
              <GaButton
 | 
					 | 
				
			||||||
                round
 | 
					 | 
				
			||||||
                onlyIcon
 | 
					 | 
				
			||||||
                shadowless
 | 
					 | 
				
			||||||
                icon="twitter"
 | 
					 | 
				
			||||||
                iconFamily="Font-Awesome"
 | 
					 | 
				
			||||||
                iconColor={theme.COLORS.WHITE}
 | 
					 | 
				
			||||||
                iconSize={theme.SIZES.BASE * 1.625}
 | 
					 | 
				
			||||||
                color={theme.COLORS.TWITTER}
 | 
					 | 
				
			||||||
                style={[styles.social, styles.shadow]}
 | 
					 | 
				
			||||||
              />
 | 
					 | 
				
			||||||
            </Block>
 | 
					 | 
				
			||||||
            <Block flex middle left>
 | 
					 | 
				
			||||||
              <GaButton
 | 
					 | 
				
			||||||
                round
 | 
					 | 
				
			||||||
                onlyIcon
 | 
					 | 
				
			||||||
                shadowless
 | 
					 | 
				
			||||||
                icon="dribbble"
 | 
					 | 
				
			||||||
                iconFamily="Font-Awesome"
 | 
					 | 
				
			||||||
                iconColor={theme.COLORS.WHITE}
 | 
					 | 
				
			||||||
                iconSize={theme.SIZES.BASE * 1.625}
 | 
					 | 
				
			||||||
                color={theme.COLORS.DRIBBBLE}
 | 
					 | 
				
			||||||
                style={[styles.social, styles.shadow]}
 | 
					 | 
				
			||||||
              />
 | 
					 | 
				
			||||||
            </Block>
 | 
					 | 
				
			||||||
          </Block>
 | 
					 | 
				
			||||||
        </Block>
 | 
					 | 
				
			||||||
      </Block>
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  renderNavigation = () => {
 | 
					 | 
				
			||||||
    return (
 | 
					 | 
				
			||||||
      <Block flex style={styles.group}>
 | 
					 | 
				
			||||||
        <Text bold size={16} style={styles.title}>
 | 
					 | 
				
			||||||
          Navigation
 | 
					 | 
				
			||||||
        </Text>
 | 
					 | 
				
			||||||
        <Block>
 | 
					 | 
				
			||||||
          <Block style={{ marginBottom: theme.SIZES.BASE }}>
 | 
					 | 
				
			||||||
            <Header back title="Title" navigation={this.props.navigation} />
 | 
					 | 
				
			||||||
          </Block>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
          <Block style={{ marginBottom: theme.SIZES.BASE }}>
 | 
					 | 
				
			||||||
            <Header
 | 
					 | 
				
			||||||
              white
 | 
					 | 
				
			||||||
              back
 | 
					 | 
				
			||||||
              title="Title"
 | 
					 | 
				
			||||||
              navigation={this.props.navigation}
 | 
					 | 
				
			||||||
              bgColor={argonTheme.COLORS.ACTIVE}
 | 
					 | 
				
			||||||
              titleColor="white"
 | 
					 | 
				
			||||||
              iconColor="white"
 | 
					 | 
				
			||||||
            />
 | 
					 | 
				
			||||||
          </Block>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
          <Block style={{ marginBottom: theme.SIZES.BASE }}>
 | 
					 | 
				
			||||||
            <Header search title="Title" navigation={this.props.navigation} />
 | 
					 | 
				
			||||||
          </Block>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
          <Block style={{ marginBottom: theme.SIZES.BASE }}>
 | 
					 | 
				
			||||||
            <Header
 | 
					 | 
				
			||||||
              tabs={tabs.categories}
 | 
					 | 
				
			||||||
              search
 | 
					 | 
				
			||||||
              title="Title"
 | 
					 | 
				
			||||||
              navigation={this.props.navigation}
 | 
					 | 
				
			||||||
            />
 | 
					 | 
				
			||||||
          </Block>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
          <Block style={{ marginBottom: theme.SIZES.BASE }}>
 | 
					 | 
				
			||||||
            <Header
 | 
					 | 
				
			||||||
              options
 | 
					 | 
				
			||||||
              search
 | 
					 | 
				
			||||||
              title="Title"
 | 
					 | 
				
			||||||
              optionLeft="Option 1"
 | 
					 | 
				
			||||||
              optionRight="Option 2"
 | 
					 | 
				
			||||||
              navigation={this.props.navigation}
 | 
					 | 
				
			||||||
            />
 | 
					 | 
				
			||||||
          </Block>
 | 
					 | 
				
			||||||
        </Block>
 | 
					 | 
				
			||||||
      </Block>
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  render() {
 | 
					 | 
				
			||||||
    return (
 | 
					 | 
				
			||||||
      <Block flex center>
 | 
					 | 
				
			||||||
        <ScrollView
 | 
					 | 
				
			||||||
          showsVerticalScrollIndicator={false}
 | 
					 | 
				
			||||||
          contentContainerStyle={{ paddingBottom: 30, width }}
 | 
					 | 
				
			||||||
        >
 | 
					 | 
				
			||||||
          {this.renderButtons()}
 | 
					 | 
				
			||||||
          {this.renderText()}
 | 
					 | 
				
			||||||
          {this.renderInputs()}
 | 
					 | 
				
			||||||
          {this.renderSocial()}
 | 
					 | 
				
			||||||
          {this.renderSwitches()}
 | 
					 | 
				
			||||||
          {this.renderNavigation()}
 | 
					 | 
				
			||||||
          {this.renderTableCell()}
 | 
					 | 
				
			||||||
        </ScrollView>
 | 
					 | 
				
			||||||
      </Block>
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const styles = StyleSheet.create({
 | 
					 | 
				
			||||||
  title: {
 | 
					 | 
				
			||||||
    paddingBottom: theme.SIZES.BASE,
 | 
					 | 
				
			||||||
    paddingHorizontal: theme.SIZES.BASE * 2,
 | 
					 | 
				
			||||||
    marginTop: 44,
 | 
					 | 
				
			||||||
    color: argonTheme.COLORS.HEADER,
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  group: {
 | 
					 | 
				
			||||||
    paddingTop: theme.SIZES.BASE * 2,
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  shadow: {
 | 
					 | 
				
			||||||
    shadowColor: "black",
 | 
					 | 
				
			||||||
    shadowOffset: { width: 0, height: 2 },
 | 
					 | 
				
			||||||
    shadowRadius: 4,
 | 
					 | 
				
			||||||
    shadowOpacity: 0.2,
 | 
					 | 
				
			||||||
    elevation: 2,
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  button: {
 | 
					 | 
				
			||||||
    marginBottom: theme.SIZES.BASE,
 | 
					 | 
				
			||||||
    width: width - theme.SIZES.BASE * 2,
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  optionsButton: {
 | 
					 | 
				
			||||||
    width: "auto",
 | 
					 | 
				
			||||||
    height: 34,
 | 
					 | 
				
			||||||
    paddingHorizontal: theme.SIZES.BASE,
 | 
					 | 
				
			||||||
    paddingVertical: 10,
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  input: {
 | 
					 | 
				
			||||||
    borderBottomWidth: 1,
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  inputDefault: {
 | 
					 | 
				
			||||||
    borderBottomColor: argonTheme.COLORS.PLACEHOLDER,
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  inputTheme: {
 | 
					 | 
				
			||||||
    borderBottomColor: argonTheme.COLORS.PRIMARY,
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  inputInfo: {
 | 
					 | 
				
			||||||
    borderBottomColor: argonTheme.COLORS.INFO,
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  inputSuccess: {
 | 
					 | 
				
			||||||
    borderBottomColor: argonTheme.COLORS.SUCCESS,
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  inputWarning: {
 | 
					 | 
				
			||||||
    borderBottomColor: argonTheme.COLORS.WARNING,
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  inputDanger: {
 | 
					 | 
				
			||||||
    borderBottomColor: argonTheme.COLORS.ERROR,
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  social: {
 | 
					 | 
				
			||||||
    width: theme.SIZES.BASE * 3.5,
 | 
					 | 
				
			||||||
    height: theme.SIZES.BASE * 3.5,
 | 
					 | 
				
			||||||
    borderRadius: theme.SIZES.BASE * 1.75,
 | 
					 | 
				
			||||||
    justifyContent: "center",
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
});
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export default Elements;
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,47 +0,0 @@
 | 
				
			||||||
import React from 'react';
 | 
					 | 
				
			||||||
import { StyleSheet, Dimensions, ScrollView } from 'react-native';
 | 
					 | 
				
			||||||
import { Block, theme } from 'galio-framework';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import { Card } from '../components';
 | 
					 | 
				
			||||||
import articles from '../constants/articles';
 | 
					 | 
				
			||||||
const { width } = Dimensions.get('screen');
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
class Home extends React.Component {
 | 
					 | 
				
			||||||
  renderArticles = () => {
 | 
					 | 
				
			||||||
    return (
 | 
					 | 
				
			||||||
      <ScrollView
 | 
					 | 
				
			||||||
        showsVerticalScrollIndicator={false}
 | 
					 | 
				
			||||||
        contentContainerStyle={styles.articles}>
 | 
					 | 
				
			||||||
        <Block flex>
 | 
					 | 
				
			||||||
          <Card item={articles[0]} horizontal  />
 | 
					 | 
				
			||||||
          <Block flex row>
 | 
					 | 
				
			||||||
            <Card item={articles[1]} style={{ marginRight: theme.SIZES.BASE }} />
 | 
					 | 
				
			||||||
            <Card item={articles[2]} />
 | 
					 | 
				
			||||||
          </Block>
 | 
					 | 
				
			||||||
          <Card item={articles[3]} horizontal />
 | 
					 | 
				
			||||||
          <Card item={articles[4]} full />
 | 
					 | 
				
			||||||
        </Block>
 | 
					 | 
				
			||||||
      </ScrollView>
 | 
					 | 
				
			||||||
    )
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  render() {
 | 
					 | 
				
			||||||
    return (
 | 
					 | 
				
			||||||
      <Block flex center style={styles.home}>
 | 
					 | 
				
			||||||
        {this.renderArticles()}
 | 
					 | 
				
			||||||
      </Block>
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const styles = StyleSheet.create({
 | 
					 | 
				
			||||||
  home: {
 | 
					 | 
				
			||||||
    width: width,    
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  articles: {
 | 
					 | 
				
			||||||
    width: width - theme.SIZES.BASE * 2,
 | 
					 | 
				
			||||||
    paddingVertical: theme.SIZES.BASE,
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
});
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export default Home;
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,99 +0,0 @@
 | 
				
			||||||
import React from "react";
 | 
					 | 
				
			||||||
import {
 | 
					 | 
				
			||||||
  ImageBackground,
 | 
					 | 
				
			||||||
  Image,
 | 
					 | 
				
			||||||
  StyleSheet,
 | 
					 | 
				
			||||||
  StatusBar,
 | 
					 | 
				
			||||||
  Dimensions
 | 
					 | 
				
			||||||
} from "react-native";
 | 
					 | 
				
			||||||
import { Block, Button, Text, theme } from "galio-framework";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const { height, width } = Dimensions.get("screen");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import argonTheme from "../constants/Theme";
 | 
					 | 
				
			||||||
import Images from "../constants/Images";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
class Onboarding extends React.Component {
 | 
					 | 
				
			||||||
  render() {
 | 
					 | 
				
			||||||
    const { navigation } = this.props;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return (
 | 
					 | 
				
			||||||
      <Block flex style={styles.container}>
 | 
					 | 
				
			||||||
        <StatusBar hidden />
 | 
					 | 
				
			||||||
        <Block flex center>
 | 
					 | 
				
			||||||
        <ImageBackground
 | 
					 | 
				
			||||||
            source={Images.Onboarding}
 | 
					 | 
				
			||||||
            style={{ height, width, zIndex: 1 }}
 | 
					 | 
				
			||||||
          />
 | 
					 | 
				
			||||||
        </Block>
 | 
					 | 
				
			||||||
        <Block center>
 | 
					 | 
				
			||||||
          <Image source={Images.LogoOnboarding} style={styles.logo} />
 | 
					 | 
				
			||||||
        </Block>
 | 
					 | 
				
			||||||
        <Block flex space="between" style={styles.padded}>
 | 
					 | 
				
			||||||
            <Block flex space="around" style={{ zIndex: 2 }}>
 | 
					 | 
				
			||||||
              <Block style={styles.title}>
 | 
					 | 
				
			||||||
                <Block>
 | 
					 | 
				
			||||||
                  <Text color="white" size={60}>
 | 
					 | 
				
			||||||
                    Design
 | 
					 | 
				
			||||||
                  </Text>
 | 
					 | 
				
			||||||
                </Block>
 | 
					 | 
				
			||||||
                <Block>
 | 
					 | 
				
			||||||
                  <Text color="white" size={60}>
 | 
					 | 
				
			||||||
                    System
 | 
					 | 
				
			||||||
                  </Text>
 | 
					 | 
				
			||||||
                </Block>
 | 
					 | 
				
			||||||
                <Block style={styles.subTitle}>
 | 
					 | 
				
			||||||
                  <Text color="white" size={16}>
 | 
					 | 
				
			||||||
                    Fully coded React Native components.
 | 
					 | 
				
			||||||
                  </Text>
 | 
					 | 
				
			||||||
                </Block>
 | 
					 | 
				
			||||||
              </Block>
 | 
					 | 
				
			||||||
              <Block center>
 | 
					 | 
				
			||||||
                <Button
 | 
					 | 
				
			||||||
                  style={styles.button}
 | 
					 | 
				
			||||||
                  color={argonTheme.COLORS.SECONDARY}
 | 
					 | 
				
			||||||
                  onPress={() => navigation.navigate("App")}
 | 
					 | 
				
			||||||
                  textStyle={{ color: argonTheme.COLORS.BLACK }}
 | 
					 | 
				
			||||||
                >
 | 
					 | 
				
			||||||
                  Get Started
 | 
					 | 
				
			||||||
                </Button>
 | 
					 | 
				
			||||||
              </Block>
 | 
					 | 
				
			||||||
          </Block>
 | 
					 | 
				
			||||||
        </Block>
 | 
					 | 
				
			||||||
      </Block>
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const styles = StyleSheet.create({
 | 
					 | 
				
			||||||
  container: {
 | 
					 | 
				
			||||||
    backgroundColor: theme.COLORS.BLACK
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  padded: {
 | 
					 | 
				
			||||||
    paddingHorizontal: theme.SIZES.BASE * 2,
 | 
					 | 
				
			||||||
    position: "relative",
 | 
					 | 
				
			||||||
    bottom: theme.SIZES.BASE,
 | 
					 | 
				
			||||||
    zIndex: 2,
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  button: {
 | 
					 | 
				
			||||||
    width: width - theme.SIZES.BASE * 4,
 | 
					 | 
				
			||||||
    height: theme.SIZES.BASE * 3,
 | 
					 | 
				
			||||||
    shadowRadius: 0,
 | 
					 | 
				
			||||||
    shadowOpacity: 0
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  logo: {
 | 
					 | 
				
			||||||
    width: 200,
 | 
					 | 
				
			||||||
    height: 60,
 | 
					 | 
				
			||||||
    zIndex: 2,
 | 
					 | 
				
			||||||
    position: 'relative',
 | 
					 | 
				
			||||||
    marginTop: '-50%'
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  title: {
 | 
					 | 
				
			||||||
    marginTop:'-5%'
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  subTitle: {
 | 
					 | 
				
			||||||
    marginTop: 20
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
});
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export default Onboarding;
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,100 +0,0 @@
 | 
				
			||||||
import React from 'react';
 | 
					 | 
				
			||||||
import { ImageBackground, Image, StyleSheet, StatusBar, Dimensions, Platform, Linking } from 'react-native';
 | 
					 | 
				
			||||||
import { Block, Button, Text, theme } from 'galio-framework';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const { height, width } = Dimensions.get('screen');
 | 
					 | 
				
			||||||
import { Images, argonTheme } from '../constants/';
 | 
					 | 
				
			||||||
import { HeaderHeight } from "../constants/utils";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export default class Pro extends React.Component {
 | 
					 | 
				
			||||||
  render() {
 | 
					 | 
				
			||||||
    const { navigation } = this.props;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return (
 | 
					 | 
				
			||||||
      <Block flex style={styles.container}>
 | 
					 | 
				
			||||||
        <StatusBar barStyle="light-content" />
 | 
					 | 
				
			||||||
        <Block flex>
 | 
					 | 
				
			||||||
          <ImageBackground
 | 
					 | 
				
			||||||
            source={Images.Pro}
 | 
					 | 
				
			||||||
            style={{ flex: 1, height: height, width, zIndex: 1 }}
 | 
					 | 
				
			||||||
          />
 | 
					 | 
				
			||||||
          <Block space="between" style={styles.padded}>
 | 
					 | 
				
			||||||
            <Block>
 | 
					 | 
				
			||||||
              <Block>
 | 
					 | 
				
			||||||
                <Image source={Images.ArgonLogo}
 | 
					 | 
				
			||||||
                  style={{ marginBottom: theme.SIZES.BASE * 1.5 }}/>
 | 
					 | 
				
			||||||
              </Block>
 | 
					 | 
				
			||||||
              <Block >
 | 
					 | 
				
			||||||
                <Block>
 | 
					 | 
				
			||||||
                  <Text color="white" size={60}>Argon</Text>
 | 
					 | 
				
			||||||
                </Block>
 | 
					 | 
				
			||||||
                <Block>
 | 
					 | 
				
			||||||
                  <Text color="white" size={60}>Design</Text>
 | 
					 | 
				
			||||||
                </Block>
 | 
					 | 
				
			||||||
                <Block row>
 | 
					 | 
				
			||||||
                  <Text color="white" size={60}>System</Text>
 | 
					 | 
				
			||||||
                  <Block middle style={styles.pro}>
 | 
					 | 
				
			||||||
                    <Text size={16} color="white">PRO</Text>
 | 
					 | 
				
			||||||
                  </Block>
 | 
					 | 
				
			||||||
                </Block>
 | 
					 | 
				
			||||||
              </Block>
 | 
					 | 
				
			||||||
              <Text size={16} color='rgba(255,255,255,0.6)' style={{ marginTop: 35 }}>
 | 
					 | 
				
			||||||
                Take advantage of all the features and screens made upon Galio Design System, coded on React Native for both.
 | 
					 | 
				
			||||||
              </Text>
 | 
					 | 
				
			||||||
              <Block row style={{ marginTop: theme.SIZES.BASE * 1.5, marginBottom: theme.SIZES.BASE * 4 }}>
 | 
					 | 
				
			||||||
                <Image
 | 
					 | 
				
			||||||
                  source={Images.iOSLogo}
 | 
					 | 
				
			||||||
                  style={{ height: 38, width: 82, marginRight: theme.SIZES.BASE * 1.5 }} />
 | 
					 | 
				
			||||||
                <Image
 | 
					 | 
				
			||||||
                  source={Images.androidLogo}
 | 
					 | 
				
			||||||
                  style={{ height: 38, width: 140 }} />
 | 
					 | 
				
			||||||
              </Block>
 | 
					 | 
				
			||||||
              <Button
 | 
					 | 
				
			||||||
                shadowless
 | 
					 | 
				
			||||||
                style={styles.button}
 | 
					 | 
				
			||||||
                color={argonTheme.COLORS.INFO}
 | 
					 | 
				
			||||||
                onPress={() => Linking.openURL('https://www.creative-tim.com/product/argon-pro-react-native').catch((err) => console.error('An error occurred', err))}>
 | 
					 | 
				
			||||||
                <Text bold color={theme.COLORS.WHITE}>BUY NOW</Text>
 | 
					 | 
				
			||||||
              </Button>
 | 
					 | 
				
			||||||
            </Block>
 | 
					 | 
				
			||||||
          </Block>
 | 
					 | 
				
			||||||
        </Block>
 | 
					 | 
				
			||||||
      </Block>
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const styles = StyleSheet.create({
 | 
					 | 
				
			||||||
  container: {
 | 
					 | 
				
			||||||
    backgroundColor: theme.COLORS.BLACK,
 | 
					 | 
				
			||||||
    marginTop: Platform.OS === 'android' ? -HeaderHeight : 0,
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  padded: {
 | 
					 | 
				
			||||||
    paddingHorizontal: theme.SIZES.BASE * 2,
 | 
					 | 
				
			||||||
    zIndex: 3,
 | 
					 | 
				
			||||||
    position: 'absolute',
 | 
					 | 
				
			||||||
    bottom: Platform.OS === 'android' ? theme.SIZES.BASE * 2 : theme.SIZES.BASE * 3,
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  button: {
 | 
					 | 
				
			||||||
    width: width - theme.SIZES.BASE * 4,
 | 
					 | 
				
			||||||
    height: theme.SIZES.BASE * 3,
 | 
					 | 
				
			||||||
    shadowRadius: 0,
 | 
					 | 
				
			||||||
    shadowOpacity: 0,
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  pro: {
 | 
					 | 
				
			||||||
    backgroundColor: argonTheme.COLORS.INFO,
 | 
					 | 
				
			||||||
    paddingHorizontal: 8,
 | 
					 | 
				
			||||||
    marginLeft: 3,
 | 
					 | 
				
			||||||
    borderRadius: 4,
 | 
					 | 
				
			||||||
    height: 22,
 | 
					 | 
				
			||||||
    marginTop: 15
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  gradient: {
 | 
					 | 
				
			||||||
    zIndex: 1,
 | 
					 | 
				
			||||||
    position: 'absolute',
 | 
					 | 
				
			||||||
    bottom: 0,
 | 
					 | 
				
			||||||
    left: 0,
 | 
					 | 
				
			||||||
    right: 0,
 | 
					 | 
				
			||||||
    height: 66,
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
});
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,342 +0,0 @@
 | 
				
			||||||
import React from "react";
 | 
					 | 
				
			||||||
import {
 | 
					 | 
				
			||||||
  StyleSheet,
 | 
					 | 
				
			||||||
  Dimensions,
 | 
					 | 
				
			||||||
  ScrollView,
 | 
					 | 
				
			||||||
  Image,
 | 
					 | 
				
			||||||
  ImageBackground,
 | 
					 | 
				
			||||||
  Platform
 | 
					 | 
				
			||||||
} from "react-native";
 | 
					 | 
				
			||||||
import { Block, Text, theme } from "galio-framework";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import { Button } from "../components";
 | 
					 | 
				
			||||||
import { Images, argonTheme } from "../constants";
 | 
					 | 
				
			||||||
import { HeaderHeight } from "../constants/utils";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const { width, height } = Dimensions.get("screen");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const thumbMeasure = (width - 48 - 32) / 3;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
class Profile extends React.Component {
 | 
					 | 
				
			||||||
  render() {
 | 
					 | 
				
			||||||
    return (
 | 
					 | 
				
			||||||
      <Block flex style={styles.profile}>
 | 
					 | 
				
			||||||
        <Block flex>
 | 
					 | 
				
			||||||
          <ImageBackground
 | 
					 | 
				
			||||||
            source={Images.ProfileBackground}
 | 
					 | 
				
			||||||
            style={styles.profileContainer}
 | 
					 | 
				
			||||||
            imageStyle={styles.profileBackground}
 | 
					 | 
				
			||||||
          >
 | 
					 | 
				
			||||||
            <ScrollView
 | 
					 | 
				
			||||||
              showsVerticalScrollIndicator={false}
 | 
					 | 
				
			||||||
              style={{ width, marginTop: '25%' }}
 | 
					 | 
				
			||||||
            >
 | 
					 | 
				
			||||||
              <Block flex style={styles.profileCard}>
 | 
					 | 
				
			||||||
                <Block middle style={styles.avatarContainer}>
 | 
					 | 
				
			||||||
                  <Image
 | 
					 | 
				
			||||||
                    source={{ uri: Images.ProfilePicture }}
 | 
					 | 
				
			||||||
                    style={styles.avatar}
 | 
					 | 
				
			||||||
                  />
 | 
					 | 
				
			||||||
                </Block>
 | 
					 | 
				
			||||||
                <Block style={styles.info}>
 | 
					 | 
				
			||||||
                  <Block
 | 
					 | 
				
			||||||
                    middle
 | 
					 | 
				
			||||||
                    row
 | 
					 | 
				
			||||||
                    space="evenly"
 | 
					 | 
				
			||||||
                    style={{ marginTop: 20, paddingBottom: 24 }}
 | 
					 | 
				
			||||||
                  >
 | 
					 | 
				
			||||||
                    <Button
 | 
					 | 
				
			||||||
                      small
 | 
					 | 
				
			||||||
                      style={{ backgroundColor: argonTheme.COLORS.INFO }}
 | 
					 | 
				
			||||||
                    >
 | 
					 | 
				
			||||||
                      CONNECT
 | 
					 | 
				
			||||||
                    </Button>
 | 
					 | 
				
			||||||
                    <Button
 | 
					 | 
				
			||||||
                      small
 | 
					 | 
				
			||||||
                      style={{ backgroundColor: argonTheme.COLORS.DEFAULT }}
 | 
					 | 
				
			||||||
                    >
 | 
					 | 
				
			||||||
                      MESSAGE
 | 
					 | 
				
			||||||
                    </Button>
 | 
					 | 
				
			||||||
                  </Block>
 | 
					 | 
				
			||||||
                  <Block row space="between">
 | 
					 | 
				
			||||||
                    <Block middle>
 | 
					 | 
				
			||||||
                      <Text
 | 
					 | 
				
			||||||
                        bold
 | 
					 | 
				
			||||||
                        size={18}
 | 
					 | 
				
			||||||
                        color="#525F7F"
 | 
					 | 
				
			||||||
                        style={{ marginBottom: 4 }}
 | 
					 | 
				
			||||||
                      >
 | 
					 | 
				
			||||||
                        2K
 | 
					 | 
				
			||||||
                      </Text>
 | 
					 | 
				
			||||||
                      <Text size={12} color={argonTheme.COLORS.TEXT}>Orders</Text>
 | 
					 | 
				
			||||||
                    </Block>
 | 
					 | 
				
			||||||
                    <Block middle>
 | 
					 | 
				
			||||||
                      <Text
 | 
					 | 
				
			||||||
                        bold
 | 
					 | 
				
			||||||
                        color="#525F7F"
 | 
					 | 
				
			||||||
                        size={18}
 | 
					 | 
				
			||||||
                        style={{ marginBottom: 4 }}
 | 
					 | 
				
			||||||
                      >
 | 
					 | 
				
			||||||
                        10
 | 
					 | 
				
			||||||
                      </Text>
 | 
					 | 
				
			||||||
                      <Text size={12} color={argonTheme.COLORS.TEXT}>Photos</Text>
 | 
					 | 
				
			||||||
                    </Block>
 | 
					 | 
				
			||||||
                    <Block middle>
 | 
					 | 
				
			||||||
                      <Text
 | 
					 | 
				
			||||||
                        bold
 | 
					 | 
				
			||||||
                        color="#525F7F"
 | 
					 | 
				
			||||||
                        size={18}
 | 
					 | 
				
			||||||
                        style={{ marginBottom: 4 }}
 | 
					 | 
				
			||||||
                      >
 | 
					 | 
				
			||||||
                        89
 | 
					 | 
				
			||||||
                      </Text>
 | 
					 | 
				
			||||||
                      <Text size={12} color={argonTheme.COLORS.TEXT}>Comments</Text>
 | 
					 | 
				
			||||||
                    </Block>
 | 
					 | 
				
			||||||
                  </Block>
 | 
					 | 
				
			||||||
                </Block>
 | 
					 | 
				
			||||||
                <Block flex>
 | 
					 | 
				
			||||||
                  <Block middle style={styles.nameInfo}>
 | 
					 | 
				
			||||||
                    <Text bold size={28} color="#32325D">
 | 
					 | 
				
			||||||
                      Jessica Jones, 27
 | 
					 | 
				
			||||||
                    </Text>
 | 
					 | 
				
			||||||
                    <Text size={16} color="#32325D" style={{ marginTop: 10 }}>
 | 
					 | 
				
			||||||
                      San Francisco, USA
 | 
					 | 
				
			||||||
                    </Text>
 | 
					 | 
				
			||||||
                  </Block>
 | 
					 | 
				
			||||||
                  <Block middle style={{ marginTop: 30, marginBottom: 16 }}>
 | 
					 | 
				
			||||||
                    <Block style={styles.divider} />
 | 
					 | 
				
			||||||
                  </Block>
 | 
					 | 
				
			||||||
                  <Block middle>
 | 
					 | 
				
			||||||
                    <Text
 | 
					 | 
				
			||||||
                      size={16}
 | 
					 | 
				
			||||||
                      color="#525F7F"
 | 
					 | 
				
			||||||
                      style={{ textAlign: "center" }}
 | 
					 | 
				
			||||||
                    >
 | 
					 | 
				
			||||||
                      An artist of considerable range, Jessica name taken by
 | 
					 | 
				
			||||||
                      Melbourne …
 | 
					 | 
				
			||||||
                    </Text>
 | 
					 | 
				
			||||||
                    <Button
 | 
					 | 
				
			||||||
                      color="transparent"
 | 
					 | 
				
			||||||
                      textStyle={{
 | 
					 | 
				
			||||||
                        color: "#233DD2",
 | 
					 | 
				
			||||||
                        fontWeight: "500",
 | 
					 | 
				
			||||||
                        fontSize: 16
 | 
					 | 
				
			||||||
                      }}
 | 
					 | 
				
			||||||
                    >
 | 
					 | 
				
			||||||
                      Show more
 | 
					 | 
				
			||||||
                    </Button>
 | 
					 | 
				
			||||||
                  </Block>
 | 
					 | 
				
			||||||
                  <Block
 | 
					 | 
				
			||||||
                    row
 | 
					 | 
				
			||||||
                    space="between"
 | 
					 | 
				
			||||||
                  >
 | 
					 | 
				
			||||||
                    <Text bold size={16} color="#525F7F" style={{marginTop: 12}}>
 | 
					 | 
				
			||||||
                      Album
 | 
					 | 
				
			||||||
                    </Text>
 | 
					 | 
				
			||||||
                    <Button
 | 
					 | 
				
			||||||
                      small
 | 
					 | 
				
			||||||
                      color="transparent"
 | 
					 | 
				
			||||||
                      textStyle={{ color: "#5E72E4", fontSize: 12, marginLeft: 24 }}
 | 
					 | 
				
			||||||
                    >
 | 
					 | 
				
			||||||
                      View all
 | 
					 | 
				
			||||||
                    </Button>
 | 
					 | 
				
			||||||
                  </Block>
 | 
					 | 
				
			||||||
                  <Block style={{ paddingBottom: -HeaderHeight * 2 }}>
 | 
					 | 
				
			||||||
                    <Block row space="between" style={{ flexWrap: "wrap" }}>
 | 
					 | 
				
			||||||
                      {Images.Viewed.map((img, imgIndex) => (
 | 
					 | 
				
			||||||
                        <Image
 | 
					 | 
				
			||||||
                          source={{ uri: img }}
 | 
					 | 
				
			||||||
                          key={`viewed-${img}`}
 | 
					 | 
				
			||||||
                          resizeMode="cover"
 | 
					 | 
				
			||||||
                          style={styles.thumb}
 | 
					 | 
				
			||||||
                        />
 | 
					 | 
				
			||||||
                      ))}
 | 
					 | 
				
			||||||
                    </Block>
 | 
					 | 
				
			||||||
                  </Block>
 | 
					 | 
				
			||||||
                </Block>
 | 
					 | 
				
			||||||
              </Block>
 | 
					 | 
				
			||||||
            </ScrollView>
 | 
					 | 
				
			||||||
          </ImageBackground>
 | 
					 | 
				
			||||||
        </Block>
 | 
					 | 
				
			||||||
        {/* <ScrollView showsVerticalScrollIndicator={false} 
 | 
					 | 
				
			||||||
                    contentContainerStyle={{ flex: 1, width, height, zIndex: 9000, backgroundColor: 'red' }}>
 | 
					 | 
				
			||||||
        <Block flex style={styles.profileCard}>
 | 
					 | 
				
			||||||
          <Block middle style={styles.avatarContainer}>
 | 
					 | 
				
			||||||
            <Image
 | 
					 | 
				
			||||||
              source={{ uri: Images.ProfilePicture }}
 | 
					 | 
				
			||||||
              style={styles.avatar}
 | 
					 | 
				
			||||||
            />
 | 
					 | 
				
			||||||
          </Block>
 | 
					 | 
				
			||||||
          <Block style={styles.info}>
 | 
					 | 
				
			||||||
            <Block
 | 
					 | 
				
			||||||
              middle
 | 
					 | 
				
			||||||
              row
 | 
					 | 
				
			||||||
              space="evenly"
 | 
					 | 
				
			||||||
              style={{ marginTop: 20, paddingBottom: 24 }}
 | 
					 | 
				
			||||||
            >
 | 
					 | 
				
			||||||
              <Button small style={{ backgroundColor: argonTheme.COLORS.INFO }}>
 | 
					 | 
				
			||||||
                CONNECT
 | 
					 | 
				
			||||||
              </Button>
 | 
					 | 
				
			||||||
              <Button
 | 
					 | 
				
			||||||
                small
 | 
					 | 
				
			||||||
                style={{ backgroundColor: argonTheme.COLORS.DEFAULT }}
 | 
					 | 
				
			||||||
              >
 | 
					 | 
				
			||||||
                MESSAGE
 | 
					 | 
				
			||||||
              </Button>
 | 
					 | 
				
			||||||
            </Block>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            <Block row space="between">
 | 
					 | 
				
			||||||
              <Block middle>
 | 
					 | 
				
			||||||
                <Text
 | 
					 | 
				
			||||||
                  bold
 | 
					 | 
				
			||||||
                  size={12}
 | 
					 | 
				
			||||||
                  color="#525F7F"
 | 
					 | 
				
			||||||
                  style={{ marginBottom: 4 }}
 | 
					 | 
				
			||||||
                >
 | 
					 | 
				
			||||||
                  2K
 | 
					 | 
				
			||||||
                </Text>
 | 
					 | 
				
			||||||
                <Text size={12}>Orders</Text>
 | 
					 | 
				
			||||||
              </Block>
 | 
					 | 
				
			||||||
              <Block middle>
 | 
					 | 
				
			||||||
                <Text bold size={12} style={{ marginBottom: 4 }}>
 | 
					 | 
				
			||||||
                  10
 | 
					 | 
				
			||||||
                </Text>
 | 
					 | 
				
			||||||
                <Text size={12}>Photos</Text>
 | 
					 | 
				
			||||||
              </Block>
 | 
					 | 
				
			||||||
              <Block middle>
 | 
					 | 
				
			||||||
                <Text bold size={12} style={{ marginBottom: 4 }}>
 | 
					 | 
				
			||||||
                  89
 | 
					 | 
				
			||||||
                </Text>
 | 
					 | 
				
			||||||
                <Text size={12}>Comments</Text>
 | 
					 | 
				
			||||||
              </Block>
 | 
					 | 
				
			||||||
            </Block>
 | 
					 | 
				
			||||||
          </Block>
 | 
					 | 
				
			||||||
          <Block flex>
 | 
					 | 
				
			||||||
              <Block middle style={styles.nameInfo}>
 | 
					 | 
				
			||||||
                <Text bold size={28} color="#32325D">
 | 
					 | 
				
			||||||
                  Jessica Jones, 27
 | 
					 | 
				
			||||||
                </Text>
 | 
					 | 
				
			||||||
                <Text size={16} color="#32325D" style={{ marginTop: 10 }}>
 | 
					 | 
				
			||||||
                  San Francisco, USA
 | 
					 | 
				
			||||||
                </Text>
 | 
					 | 
				
			||||||
              </Block>
 | 
					 | 
				
			||||||
              <Block middle style={{ marginTop: 30, marginBottom: 16 }}>
 | 
					 | 
				
			||||||
                <Block style={styles.divider} />
 | 
					 | 
				
			||||||
              </Block>
 | 
					 | 
				
			||||||
              <Block middle>
 | 
					 | 
				
			||||||
                <Text size={16} color="#525F7F" style={{ textAlign: "center" }}>
 | 
					 | 
				
			||||||
                  An artist of considerable range, Jessica name taken by
 | 
					 | 
				
			||||||
                  Melbourne …
 | 
					 | 
				
			||||||
                </Text>
 | 
					 | 
				
			||||||
                <Button
 | 
					 | 
				
			||||||
                  color="transparent"
 | 
					 | 
				
			||||||
                  textStyle={{
 | 
					 | 
				
			||||||
                    color: "#233DD2",
 | 
					 | 
				
			||||||
                    fontWeight: "500",
 | 
					 | 
				
			||||||
                    fontSize: 16
 | 
					 | 
				
			||||||
                  }}
 | 
					 | 
				
			||||||
                >
 | 
					 | 
				
			||||||
                  Show more
 | 
					 | 
				
			||||||
                </Button>
 | 
					 | 
				
			||||||
              </Block>
 | 
					 | 
				
			||||||
              <Block
 | 
					 | 
				
			||||||
                row
 | 
					 | 
				
			||||||
                style={{ paddingVertical: 14, alignItems: "baseline" }}
 | 
					 | 
				
			||||||
              >
 | 
					 | 
				
			||||||
                <Text bold size={16} color="#525F7F">
 | 
					 | 
				
			||||||
                  Album
 | 
					 | 
				
			||||||
                </Text>
 | 
					 | 
				
			||||||
              </Block>
 | 
					 | 
				
			||||||
              <Block
 | 
					 | 
				
			||||||
                row
 | 
					 | 
				
			||||||
                style={{ paddingBottom: 20, justifyContent: "flex-end" }}
 | 
					 | 
				
			||||||
              >
 | 
					 | 
				
			||||||
                <Button
 | 
					 | 
				
			||||||
                  small
 | 
					 | 
				
			||||||
                  color="transparent"
 | 
					 | 
				
			||||||
                  textStyle={{ color: "#5E72E4", fontSize: 12 }}
 | 
					 | 
				
			||||||
                >
 | 
					 | 
				
			||||||
                  View all
 | 
					 | 
				
			||||||
                </Button>
 | 
					 | 
				
			||||||
              </Block>
 | 
					 | 
				
			||||||
              <Block style={{ paddingBottom: -HeaderHeight * 2 }}>
 | 
					 | 
				
			||||||
                <Block row space="between" style={{ flexWrap: "wrap" }}>
 | 
					 | 
				
			||||||
                  {Images.Viewed.map((img, imgIndex) => (
 | 
					 | 
				
			||||||
                    <Image
 | 
					 | 
				
			||||||
                      source={{ uri: img }}
 | 
					 | 
				
			||||||
                      key={`viewed-${img}`}
 | 
					 | 
				
			||||||
                      resizeMode="cover"
 | 
					 | 
				
			||||||
                      style={styles.thumb}
 | 
					 | 
				
			||||||
                    />
 | 
					 | 
				
			||||||
                  ))}
 | 
					 | 
				
			||||||
                </Block>
 | 
					 | 
				
			||||||
              </Block>
 | 
					 | 
				
			||||||
          </Block>
 | 
					 | 
				
			||||||
        </Block>
 | 
					 | 
				
			||||||
                  </ScrollView>*/}
 | 
					 | 
				
			||||||
      </Block>
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const styles = StyleSheet.create({
 | 
					 | 
				
			||||||
  profile: {
 | 
					 | 
				
			||||||
    marginTop: Platform.OS === "android" ? -HeaderHeight : 0,
 | 
					 | 
				
			||||||
    // marginBottom: -HeaderHeight * 2,
 | 
					 | 
				
			||||||
    flex: 1
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  profileContainer: {
 | 
					 | 
				
			||||||
    width: width,
 | 
					 | 
				
			||||||
    height: height,
 | 
					 | 
				
			||||||
    padding: 0,
 | 
					 | 
				
			||||||
    zIndex: 1
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  profileBackground: {
 | 
					 | 
				
			||||||
    width: width,
 | 
					 | 
				
			||||||
    height: height / 2
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  profileCard: {
 | 
					 | 
				
			||||||
    // position: "relative",
 | 
					 | 
				
			||||||
    padding: theme.SIZES.BASE,
 | 
					 | 
				
			||||||
    marginHorizontal: theme.SIZES.BASE,
 | 
					 | 
				
			||||||
    marginTop: 65,
 | 
					 | 
				
			||||||
    borderTopLeftRadius: 6,
 | 
					 | 
				
			||||||
    borderTopRightRadius: 6,
 | 
					 | 
				
			||||||
    backgroundColor: theme.COLORS.WHITE,
 | 
					 | 
				
			||||||
    shadowColor: "black",
 | 
					 | 
				
			||||||
    shadowOffset: { width: 0, height: 0 },
 | 
					 | 
				
			||||||
    shadowRadius: 8,
 | 
					 | 
				
			||||||
    shadowOpacity: 0.2,
 | 
					 | 
				
			||||||
    zIndex: 2
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  info: {
 | 
					 | 
				
			||||||
    paddingHorizontal: 40
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  avatarContainer: {
 | 
					 | 
				
			||||||
    position: "relative",
 | 
					 | 
				
			||||||
    marginTop: -80
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  avatar: {
 | 
					 | 
				
			||||||
    width: 124,
 | 
					 | 
				
			||||||
    height: 124,
 | 
					 | 
				
			||||||
    borderRadius: 62,
 | 
					 | 
				
			||||||
    borderWidth: 0
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  nameInfo: {
 | 
					 | 
				
			||||||
    marginTop: 35
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  divider: {
 | 
					 | 
				
			||||||
    width: "90%",
 | 
					 | 
				
			||||||
    borderWidth: 1,
 | 
					 | 
				
			||||||
    borderColor: "#E9ECEF"
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  thumb: {
 | 
					 | 
				
			||||||
    borderRadius: 4,
 | 
					 | 
				
			||||||
    marginVertical: 4,
 | 
					 | 
				
			||||||
    alignSelf: "center",
 | 
					 | 
				
			||||||
    width: thumbMeasure,
 | 
					 | 
				
			||||||
    height: thumbMeasure
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
});
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export default Profile;
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,215 +0,0 @@
 | 
				
			||||||
import React from "react";
 | 
					 | 
				
			||||||
import {
 | 
					 | 
				
			||||||
  StyleSheet,
 | 
					 | 
				
			||||||
  ImageBackground,
 | 
					 | 
				
			||||||
  Dimensions,
 | 
					 | 
				
			||||||
  StatusBar,
 | 
					 | 
				
			||||||
  KeyboardAvoidingView
 | 
					 | 
				
			||||||
} from "react-native";
 | 
					 | 
				
			||||||
import { Block, Checkbox, Text, theme } from "galio-framework";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import { Button, Icon, Input } from "../components";
 | 
					 | 
				
			||||||
import { Images, argonTheme } from "../constants";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const { width, height } = Dimensions.get("screen");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
class Register extends React.Component {
 | 
					 | 
				
			||||||
  render() {
 | 
					 | 
				
			||||||
    return (
 | 
					 | 
				
			||||||
      <Block flex middle>
 | 
					 | 
				
			||||||
        <StatusBar hidden />
 | 
					 | 
				
			||||||
        <ImageBackground
 | 
					 | 
				
			||||||
          source={Images.RegisterBackground}
 | 
					 | 
				
			||||||
          style={{ width, height, zIndex: 1 }}
 | 
					 | 
				
			||||||
        >
 | 
					 | 
				
			||||||
          <Block safe flex middle>
 | 
					 | 
				
			||||||
            <Block style={styles.registerContainer}>
 | 
					 | 
				
			||||||
              <Block flex={0.25} middle style={styles.socialConnect}>
 | 
					 | 
				
			||||||
                <Text color="#8898AA" size={12}>
 | 
					 | 
				
			||||||
                  Sign up with
 | 
					 | 
				
			||||||
                </Text>
 | 
					 | 
				
			||||||
                <Block row style={{ marginTop: theme.SIZES.BASE }}>
 | 
					 | 
				
			||||||
                  <Button style={{ ...styles.socialButtons, marginRight: 30 }}>
 | 
					 | 
				
			||||||
                    <Block row>
 | 
					 | 
				
			||||||
                      <Icon
 | 
					 | 
				
			||||||
                        name="logo-github"
 | 
					 | 
				
			||||||
                        family="Ionicon"
 | 
					 | 
				
			||||||
                        size={14}
 | 
					 | 
				
			||||||
                        color={"black"}
 | 
					 | 
				
			||||||
                        style={{ marginTop: 2, marginRight: 5 }}
 | 
					 | 
				
			||||||
                      />
 | 
					 | 
				
			||||||
                      <Text style={styles.socialTextButtons}>GITHUB</Text>
 | 
					 | 
				
			||||||
                    </Block>
 | 
					 | 
				
			||||||
                  </Button>
 | 
					 | 
				
			||||||
                  <Button style={styles.socialButtons}>
 | 
					 | 
				
			||||||
                    <Block row>
 | 
					 | 
				
			||||||
                      <Icon
 | 
					 | 
				
			||||||
                        name="logo-google"
 | 
					 | 
				
			||||||
                        family="Ionicon"
 | 
					 | 
				
			||||||
                        size={14}
 | 
					 | 
				
			||||||
                        color={"black"}
 | 
					 | 
				
			||||||
                        style={{ marginTop: 2, marginRight: 5 }}
 | 
					 | 
				
			||||||
                      />
 | 
					 | 
				
			||||||
                      <Text style={styles.socialTextButtons}>GOOGLE</Text>
 | 
					 | 
				
			||||||
                    </Block>
 | 
					 | 
				
			||||||
                  </Button>
 | 
					 | 
				
			||||||
                </Block>
 | 
					 | 
				
			||||||
              </Block>
 | 
					 | 
				
			||||||
              <Block flex>
 | 
					 | 
				
			||||||
                <Block flex={0.17} middle>
 | 
					 | 
				
			||||||
                  <Text color="#8898AA" size={12}>
 | 
					 | 
				
			||||||
                    Or sign up the classic way
 | 
					 | 
				
			||||||
                  </Text>
 | 
					 | 
				
			||||||
                </Block>
 | 
					 | 
				
			||||||
                <Block flex center>
 | 
					 | 
				
			||||||
                  <KeyboardAvoidingView
 | 
					 | 
				
			||||||
                    style={{ flex: 1 }}
 | 
					 | 
				
			||||||
                    behavior="padding"
 | 
					 | 
				
			||||||
                    enabled
 | 
					 | 
				
			||||||
                  >
 | 
					 | 
				
			||||||
                    <Block width={width * 0.8} style={{ marginBottom: 15 }}>
 | 
					 | 
				
			||||||
                      <Input
 | 
					 | 
				
			||||||
                        borderless
 | 
					 | 
				
			||||||
                        placeholder="Name"
 | 
					 | 
				
			||||||
                        iconContent={
 | 
					 | 
				
			||||||
                          <Icon
 | 
					 | 
				
			||||||
                            size={16}
 | 
					 | 
				
			||||||
                            color={argonTheme.COLORS.ICON}
 | 
					 | 
				
			||||||
                            name="hat-3"
 | 
					 | 
				
			||||||
                            family="ArgonExtra"
 | 
					 | 
				
			||||||
                            style={styles.inputIcons}
 | 
					 | 
				
			||||||
                          />
 | 
					 | 
				
			||||||
                        }
 | 
					 | 
				
			||||||
                      />
 | 
					 | 
				
			||||||
                    </Block>
 | 
					 | 
				
			||||||
                    <Block width={width * 0.8} style={{ marginBottom: 15 }}>
 | 
					 | 
				
			||||||
                      <Input
 | 
					 | 
				
			||||||
                        borderless
 | 
					 | 
				
			||||||
                        placeholder="Email"
 | 
					 | 
				
			||||||
                        iconContent={
 | 
					 | 
				
			||||||
                          <Icon
 | 
					 | 
				
			||||||
                            size={16}
 | 
					 | 
				
			||||||
                            color={argonTheme.COLORS.ICON}
 | 
					 | 
				
			||||||
                            name="ic_mail_24px"
 | 
					 | 
				
			||||||
                            family="ArgonExtra"
 | 
					 | 
				
			||||||
                            style={styles.inputIcons}
 | 
					 | 
				
			||||||
                          />
 | 
					 | 
				
			||||||
                        }
 | 
					 | 
				
			||||||
                      />
 | 
					 | 
				
			||||||
                    </Block>
 | 
					 | 
				
			||||||
                    <Block width={width * 0.8}>
 | 
					 | 
				
			||||||
                      <Input
 | 
					 | 
				
			||||||
                        password
 | 
					 | 
				
			||||||
                        borderless
 | 
					 | 
				
			||||||
                        placeholder="Password"
 | 
					 | 
				
			||||||
                        iconContent={
 | 
					 | 
				
			||||||
                          <Icon
 | 
					 | 
				
			||||||
                            size={16}
 | 
					 | 
				
			||||||
                            color={argonTheme.COLORS.ICON}
 | 
					 | 
				
			||||||
                            name="padlock-unlocked"
 | 
					 | 
				
			||||||
                            family="ArgonExtra"
 | 
					 | 
				
			||||||
                            style={styles.inputIcons}
 | 
					 | 
				
			||||||
                          />
 | 
					 | 
				
			||||||
                        }
 | 
					 | 
				
			||||||
                      />
 | 
					 | 
				
			||||||
                      <Block row style={styles.passwordCheck}>
 | 
					 | 
				
			||||||
                        <Text size={12} color={argonTheme.COLORS.MUTED}>
 | 
					 | 
				
			||||||
                          password strength:
 | 
					 | 
				
			||||||
                        </Text>
 | 
					 | 
				
			||||||
                        <Text bold size={12} color={argonTheme.COLORS.SUCCESS}>
 | 
					 | 
				
			||||||
                          {" "}
 | 
					 | 
				
			||||||
                          strong
 | 
					 | 
				
			||||||
                        </Text>
 | 
					 | 
				
			||||||
                      </Block>
 | 
					 | 
				
			||||||
                    </Block>
 | 
					 | 
				
			||||||
                    <Block row width={width * 0.75}>
 | 
					 | 
				
			||||||
                      <Checkbox
 | 
					 | 
				
			||||||
                        checkboxStyle={{
 | 
					 | 
				
			||||||
                          borderWidth: 3
 | 
					 | 
				
			||||||
                        }}
 | 
					 | 
				
			||||||
                        color={argonTheme.COLORS.PRIMARY}
 | 
					 | 
				
			||||||
                        label="I agree with the"
 | 
					 | 
				
			||||||
                      />
 | 
					 | 
				
			||||||
                      <Button
 | 
					 | 
				
			||||||
                        style={{ width: 100 }}
 | 
					 | 
				
			||||||
                        color="transparent"
 | 
					 | 
				
			||||||
                        textStyle={{
 | 
					 | 
				
			||||||
                          color: argonTheme.COLORS.PRIMARY,
 | 
					 | 
				
			||||||
                          fontSize: 14
 | 
					 | 
				
			||||||
                        }}
 | 
					 | 
				
			||||||
                      >
 | 
					 | 
				
			||||||
                        Privacy Policy
 | 
					 | 
				
			||||||
                      </Button>
 | 
					 | 
				
			||||||
                    </Block>
 | 
					 | 
				
			||||||
                    <Block middle>
 | 
					 | 
				
			||||||
                      <Button color="primary" style={styles.createButton}>
 | 
					 | 
				
			||||||
                        <Text bold size={14} color={argonTheme.COLORS.WHITE}>
 | 
					 | 
				
			||||||
                          CREATE ACCOUNT
 | 
					 | 
				
			||||||
                        </Text>
 | 
					 | 
				
			||||||
                      </Button>
 | 
					 | 
				
			||||||
                    </Block>
 | 
					 | 
				
			||||||
                  </KeyboardAvoidingView>
 | 
					 | 
				
			||||||
                </Block>
 | 
					 | 
				
			||||||
              </Block>
 | 
					 | 
				
			||||||
            </Block>
 | 
					 | 
				
			||||||
          </Block>
 | 
					 | 
				
			||||||
        </ImageBackground>
 | 
					 | 
				
			||||||
      </Block>
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const styles = StyleSheet.create({
 | 
					 | 
				
			||||||
  registerContainer: {
 | 
					 | 
				
			||||||
    width: width * 0.9,
 | 
					 | 
				
			||||||
    height: height * 0.875,
 | 
					 | 
				
			||||||
    backgroundColor: "#F4F5F7",
 | 
					 | 
				
			||||||
    borderRadius: 4,
 | 
					 | 
				
			||||||
    shadowColor: argonTheme.COLORS.BLACK,
 | 
					 | 
				
			||||||
    shadowOffset: {
 | 
					 | 
				
			||||||
      width: 0,
 | 
					 | 
				
			||||||
      height: 4
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    shadowRadius: 8,
 | 
					 | 
				
			||||||
    shadowOpacity: 0.1,
 | 
					 | 
				
			||||||
    elevation: 1,
 | 
					 | 
				
			||||||
    overflow: "hidden"
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  socialConnect: {
 | 
					 | 
				
			||||||
    backgroundColor: argonTheme.COLORS.WHITE,
 | 
					 | 
				
			||||||
    borderBottomWidth: StyleSheet.hairlineWidth,
 | 
					 | 
				
			||||||
    borderColor: "#8898AA"
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  socialButtons: {
 | 
					 | 
				
			||||||
    width: 120,
 | 
					 | 
				
			||||||
    height: 40,
 | 
					 | 
				
			||||||
    backgroundColor: "#fff",
 | 
					 | 
				
			||||||
    shadowColor: argonTheme.COLORS.BLACK,
 | 
					 | 
				
			||||||
    shadowOffset: {
 | 
					 | 
				
			||||||
      width: 0,
 | 
					 | 
				
			||||||
      height: 4
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    shadowRadius: 8,
 | 
					 | 
				
			||||||
    shadowOpacity: 0.1,
 | 
					 | 
				
			||||||
    elevation: 1
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  socialTextButtons: {
 | 
					 | 
				
			||||||
    color: argonTheme.COLORS.PRIMARY,
 | 
					 | 
				
			||||||
    fontWeight: "800",
 | 
					 | 
				
			||||||
    fontSize: 14
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  inputIcons: {
 | 
					 | 
				
			||||||
    marginRight: 12
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  passwordCheck: {
 | 
					 | 
				
			||||||
    paddingLeft: 15,
 | 
					 | 
				
			||||||
    paddingTop: 13,
 | 
					 | 
				
			||||||
    paddingBottom: 30
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  createButton: {
 | 
					 | 
				
			||||||
    width: width * 0.5,
 | 
					 | 
				
			||||||
    marginTop: 25
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
});
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export default Register;
 | 
					 | 
				
			||||||